fix the user settings is reset after using the command line tool to change the user password (#516)

This commit is contained in:
MaysWind
2026-03-04 23:06:34 +08:00
parent b729fdedca
commit f0f3143605
2 changed files with 27 additions and 1 deletions
+1 -1
View File
@@ -150,7 +150,7 @@ func (l *UserDataCli) ModifyUserPassword(c *core.CliContext, username string, pa
Password: password, Password: password,
} }
_, _, err = l.users.UpdateUser(c, userNew, false) err = l.users.UpdateUserPassword(c, userNew)
if err != nil { if err != nil {
log.CliErrorf(c, "[user_data.ModifyUserPassword] failed to update user \"%s\" password, because %s", user.Username, err.Error()) log.CliErrorf(c, "[user_data.ModifyUserPassword] failed to update user \"%s\" password, because %s", user.Username, err.Error())
+26
View File
@@ -379,6 +379,32 @@ func (s *UserService) UpdateUser(c core.Context, user *models.User, modifyUserLa
return keyProfileUpdated, emailSetToUnverified, nil return keyProfileUpdated, emailSetToUnverified, nil
} }
// UpdateUserPassword updates the password of specified user
func (s *UserService) UpdateUserPassword(c core.Context, user *models.User) error {
if user.Uid <= 0 {
return errs.ErrUserIdInvalid
}
if user.Password == "" {
return errs.ErrPasswordIsEmpty
}
user.Password = utils.EncodePassword(user.Password, user.Salt)
user.UpdatedUnixTime = time.Now().Unix()
return s.UserDB().DoTransaction(c, func(sess *xorm.Session) error {
updatedRows, err := sess.ID(user.Uid).Cols("password", "updated_unix_time").Where("deleted=?", false).Update(user)
if err != nil {
return err
} else if updatedRows < 1 {
return errs.ErrUserNotFound
}
return nil
})
}
// UpdateUserAvatar updates the custom avatar type of specified user // UpdateUserAvatar updates the custom avatar type of specified user
func (s *UserService) UpdateUserAvatar(c core.Context, uid int64, avatarFile multipart.File, fileExtension string, oldFileExtension string) error { func (s *UserService) UpdateUserAvatar(c core.Context, uid int64, avatarFile multipart.File, fileExtension string, oldFileExtension string) error {
if uid <= 0 { if uid <= 0 {