Ver código fonte

bug fix - remove secret

MHSanaei 1 ano atrás
pai
commit
dd21bb2db7
2 arquivos alterados com 33 adições e 5 exclusões
  1. 18 5
      main.go
  2. 15 0
      web/service/user.go

+ 18 - 5
main.go

@@ -244,21 +244,33 @@ func migrateDb() {
 }
 
 func removeSecret() {
-	err := database.InitDB(config.GetDBPath())
+	userService := service.UserService{}
+
+	secretExists, err := userService.CheckSecretExistence()
 	if err != nil {
-		fmt.Println(err)
+		fmt.Println("Error checking secret existence:", err)
 		return
 	}
-	userService := service.UserService{}
+
+	if !secretExists {
+		fmt.Println("No secret exists to remove.")
+		return
+	}
+
 	err = userService.RemoveUserSecret()
 	if err != nil {
-		fmt.Println(err)
+		fmt.Println("Error removing secret:", err)
+		return
 	}
+
 	settingService := service.SettingService{}
 	err = settingService.SetSecretStatus(false)
 	if err != nil {
-		fmt.Println(err)
+		fmt.Println("Error updating secret status:", err)
+		return
 	}
+
+	fmt.Println("Secret removed successfully.")
 }
 
 func main() {
@@ -285,6 +297,7 @@ func main() {
 	var remove_secret bool
 	settingCmd.BoolVar(&reset, "reset", false, "reset all settings")
 	settingCmd.BoolVar(&show, "show", false, "show current settings")
+	settingCmd.BoolVar(&remove_secret, "remove_secret", false, "remove secret")
 	settingCmd.IntVar(&port, "port", 0, "set panel port")
 	settingCmd.StringVar(&username, "username", "", "set login username")
 	settingCmd.StringVar(&password, "password", "", "set login password")

+ 15 - 0
web/service/user.go

@@ -79,6 +79,21 @@ func (s *UserService) GetUserSecret(id int) *model.User {
 	return user
 }
 
+func (s *UserService) CheckSecretExistence() (bool, error) {
+	db := database.GetDB()
+
+	var count int64
+	err := db.Model(model.User{}).
+		Where("login_secret IS NOT NULL").
+		Count(&count).
+		Error
+	if err != nil {
+		return false, err
+	}
+
+	return count > 0, nil
+}
+
 func (s *UserService) UpdateFirstUser(username string, password string) error {
 	if username == "" {
 		return errors.New("username can not be empty")