Add user update command

Signed-off-by: kolaente <k@knt.li>
This commit is contained in:
kolaente 2020-08-13 13:03:17 +02:00
parent 48868983e8
commit 1b96a4ab2d
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 33 additions and 0 deletions

View File

@ -36,6 +36,7 @@ var (
userFlagUsername string
userFlagEmail string
userFlagPassword string
userFlagAvatar = "default"
)
func init() {
@ -45,6 +46,12 @@ func init() {
userCreateCmd.Flags().StringVarP(&userFlagEmail, "email", "e", "", "The email address of the new user.")
_ = userCreateCmd.MarkFlagRequired("email")
userCreateCmd.Flags().StringVarP(&userFlagPassword, "password", "p", "", "The password of the new user. You will be asked to enter it if not provided through the flag.")
userCreateCmd.Flags().StringVarP(&userFlagAvatar, "avatar-provider", "a", "", "The avatar provider of the new user. Optional.")
// User update flags
userUpdateCmd.Flags().StringVarP(&userFlagUsername, "username", "u", "", "The new username of the user.")
userUpdateCmd.Flags().StringVarP(&userFlagEmail, "email", "e", "", "The new email address of the user.")
userUpdateCmd.Flags().StringVarP(&userFlagAvatar, "avatar-provider", "a", "", "The new avatar provider of the new user.")
userCmd.AddCommand(userListCmd, userCreateCmd, userDeleteCmd, userUpdateCmd, userResetPasswordCmd, userChangeEnabledCmd)
rootCmd.AddCommand(userCmd)
@ -134,11 +141,37 @@ var userCreateCmd = &cobra.Command{
var userUpdateCmd = &cobra.Command{
Use: "update",
Short: "Update an existing user.",
Args: cobra.ExactArgs(1),
PreRun: func(cmd *cobra.Command, args []string) {
initialize.FullInit()
},
Run: func(cmd *cobra.Command, args []string) {
id, err := strconv.ParseInt(args[0], 10, 64)
if err != nil {
log.Criticalf("Invalid user id: %s", err)
}
u, err := user.GetUserByID(id)
if err != nil {
log.Criticalf("Could not get user: %s", err)
}
if userFlagUsername != "" {
u.Username = userFlagUsername
}
if userFlagEmail != "" {
u.Email = userFlagEmail
}
if userFlagAvatar != "default" {
u.AvatarProvider = userFlagAvatar
}
_, err = user.UpdateUser(u)
if err != nil {
log.Criticalf("Error updating the user: %s", err)
}
fmt.Println("User updated successfully.")
},
}