fix(user): make disable command actually work
This commit is contained in:
parent
3ff4d81618
commit
ad8fa93cae
@ -68,8 +68,8 @@ func init() {
|
|||||||
userResetPasswordCmd.Flags().StringVarP(&userFlagPassword, "password", "p", "", "The new password of the user. Only used in combination with --direct. You will be asked to enter it if not provided through the flag.")
|
userResetPasswordCmd.Flags().StringVarP(&userFlagPassword, "password", "p", "", "The new password of the user. Only used in combination with --direct. You will be asked to enter it if not provided through the flag.")
|
||||||
|
|
||||||
// Change status flags
|
// Change status flags
|
||||||
userChangeEnabledCmd.Flags().BoolVarP(&userFlagDisableUser, "disable", "d", false, "Disable the user.")
|
userChangeStatusCmd.Flags().BoolVarP(&userFlagDisableUser, "disable", "d", false, "Disable the user.")
|
||||||
userChangeEnabledCmd.Flags().BoolVarP(&userFlagEnableUser, "enable", "e", false, "Enable the user.")
|
userChangeStatusCmd.Flags().BoolVarP(&userFlagEnableUser, "enable", "e", false, "Enable the user.")
|
||||||
|
|
||||||
// User deletion flags
|
// User deletion flags
|
||||||
userDeleteCmd.Flags().BoolVarP(&userFlagDeleteNow, "now", "n", false, "If provided, deletes the user immediately instead of sending them an email first.")
|
userDeleteCmd.Flags().BoolVarP(&userFlagDeleteNow, "now", "n", false, "If provided, deletes the user immediately instead of sending them an email first.")
|
||||||
@ -77,7 +77,7 @@ func init() {
|
|||||||
// Bypass confirm prompt
|
// Bypass confirm prompt
|
||||||
userDeleteCmd.Flags().BoolVarP(&userFlagDeleteConfirm, "confirm", "c", false, "Bypasses any prompts confirming the deletion request, use with caution!")
|
userDeleteCmd.Flags().BoolVarP(&userFlagDeleteConfirm, "confirm", "c", false, "Bypasses any prompts confirming the deletion request, use with caution!")
|
||||||
|
|
||||||
userCmd.AddCommand(userListCmd, userCreateCmd, userUpdateCmd, userResetPasswordCmd, userChangeEnabledCmd, userDeleteCmd)
|
userCmd.AddCommand(userListCmd, userCreateCmd, userUpdateCmd, userResetPasswordCmd, userChangeStatusCmd, userDeleteCmd)
|
||||||
rootCmd.AddCommand(userCmd)
|
rootCmd.AddCommand(userCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ var userResetPasswordCmd = &cobra.Command{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var userChangeEnabledCmd = &cobra.Command{
|
var userChangeStatusCmd = &cobra.Command{
|
||||||
Use: "change-status [user id]",
|
Use: "change-status [user id]",
|
||||||
Short: "Enable or disable a user. Will toggle the current status if no flag (--enable or --disable) is provided.",
|
Short: "Enable or disable a user. Will toggle the current status if no flag (--enable or --disable) is provided.",
|
||||||
PreRun: func(cmd *cobra.Command, args []string) {
|
PreRun: func(cmd *cobra.Command, args []string) {
|
||||||
@ -296,18 +296,19 @@ var userChangeEnabledCmd = &cobra.Command{
|
|||||||
|
|
||||||
u := getUserFromArg(s, args[0])
|
u := getUserFromArg(s, args[0])
|
||||||
|
|
||||||
|
var status user.Status
|
||||||
if userFlagEnableUser {
|
if userFlagEnableUser {
|
||||||
u.Status = user.StatusActive
|
status = user.StatusActive
|
||||||
} else if userFlagDisableUser {
|
} else if userFlagDisableUser {
|
||||||
u.Status = user.StatusDisabled
|
status = user.StatusDisabled
|
||||||
} else {
|
} else {
|
||||||
if u.Status == user.StatusActive {
|
if u.Status == user.StatusActive {
|
||||||
u.Status = user.StatusDisabled
|
status = user.StatusDisabled
|
||||||
} else {
|
} else {
|
||||||
u.Status = user.StatusActive
|
status = user.StatusActive
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_, err := user.UpdateUser(s, u, false)
|
err := user.SetUserStatus(s, u, status)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_ = s.Rollback()
|
_ = s.Rollback()
|
||||||
log.Fatalf("Could not enable the user")
|
log.Fatalf("Could not enable the user")
|
||||||
@ -317,7 +318,7 @@ var userChangeEnabledCmd = &cobra.Command{
|
|||||||
log.Fatalf("Error saving everything: %s", err)
|
log.Fatalf("Error saving everything: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("User status successfully changed, status is now \"%s\"\n", u.Status)
|
fmt.Printf("User status successfully changed, status is now \"%s\"\n", status)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ func (s Status) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
StatusActive = iota
|
StatusActive Status = iota
|
||||||
StatusEmailConfirmationRequired
|
StatusEmailConfirmationRequired
|
||||||
StatusDisabled
|
StatusDisabled
|
||||||
)
|
)
|
||||||
@ -543,6 +543,13 @@ func UpdateUser(s *xorm.Session, user *User, forceOverride bool) (updatedUser *U
|
|||||||
return updatedUser, err
|
return updatedUser, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetUserStatus(s *xorm.Session, user *User, status Status) (err error) {
|
||||||
|
_, err = s.Where("id = ?", user.ID).
|
||||||
|
Cols("status").
|
||||||
|
Update(&User{Status: status})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateUserPassword updates the password of a user
|
// UpdateUserPassword updates the password of a user
|
||||||
func UpdateUserPassword(s *xorm.Session, user *User, newPassword string) (err error) {
|
func UpdateUserPassword(s *xorm.Session, user *User, newPassword string) (err error) {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user