diff options
author | Joe Chen <jc@unknwon.io> | 2022-11-27 19:36:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-27 19:36:10 +0800 |
commit | ae20d03aece78fb44dc1caaacfa40c3aa40c7949 (patch) | |
tree | 7e7b33f99eae57d8426eeead443276d5cbe0dd5a /internal/route/user/setting.go | |
parent | 44333afd20a6312b617e0c33a497a4385ba3a250 (diff) |
refactor(db): migrate `UpdateUser` off `user.go` (#7267)
Diffstat (limited to 'internal/route/user/setting.go')
-rw-r--r-- | internal/route/user/setting.go | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/internal/route/user/setting.go b/internal/route/user/setting.go index fbb7c9ae..0f5a62bf 100644 --- a/internal/route/user/setting.go +++ b/internal/route/user/setting.go @@ -96,10 +96,9 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { c.Req.Context(), c.User.ID, db.UpdateUserOptions{ - FullName: f.FullName, - Website: f.Website, - Location: f.Location, - MaxRepoCreation: c.User.MaxRepoCreation, + FullName: &f.FullName, + Website: &f.Website, + Location: &f.Location, }, ) if err != nil { @@ -113,13 +112,23 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { // FIXME: limit upload size func UpdateAvatarSetting(c *context.Context, f form.Avatar, ctxUser *db.User) error { - if f.Source == form.AVATAR_BYMAIL && len(f.Gravatar) > 0 { - ctxUser.UseCustomAvatar = false - ctxUser.Avatar = cryptoutil.MD5(f.Gravatar) - ctxUser.AvatarEmail = f.Gravatar + if f.Source == form.AvatarLookup && f.Gravatar != "" { + avatar := cryptoutil.MD5(f.Gravatar) + err := db.Users.Update( + c.Req.Context(), + ctxUser.ID, + db.UpdateUserOptions{ + Avatar: &avatar, + AvatarEmail: &f.Gravatar, + }, + ) + if err != nil { + return errors.Wrap(err, "update user") + } - if err := db.UpdateUser(ctxUser); err != nil { - return fmt.Errorf("update user: %v", err) + err = db.Users.DeleteCustomAvatar(c.Req.Context(), c.User.ID) + if err != nil { + return errors.Wrap(err, "delete custom avatar") } return nil } @@ -193,14 +202,14 @@ func SettingsPasswordPost(c *context.Context, f form.ChangePassword) { } else if f.Password != f.Retype { c.Flash.Error(c.Tr("form.password_not_match")) } else { - c.User.Password = f.Password - var err error - if c.User.Salt, err = userutil.RandomSalt(); err != nil { - c.Errorf(err, "get user salt") - return - } - c.User.Password = userutil.EncodePassword(c.User.Password, c.User.Salt) - if err := db.UpdateUser(c.User); err != nil { + err := db.Users.Update( + c.Req.Context(), + c.User.ID, + db.UpdateUserOptions{ + Password: &f.Password, + }, + ) + if err != nil { c.Errorf(err, "update user") return } |