Skip to content

Commit e93e3ec

Browse files
committed
re-use HandleUsernameChange
1 parent e1db950 commit e93e3ec

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

routers/admin/users.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"code.gitea.io/gitea/modules/password"
1919
"code.gitea.io/gitea/modules/setting"
2020
"code.gitea.io/gitea/routers"
21+
router_user_setting "code.gitea.io/gitea/routers/user/setting"
2122
"code.gitea.io/gitea/services/mailer"
2223
)
2324

@@ -259,12 +260,13 @@ func EditUserPost(ctx *context.Context, form auth.AdminEditUserForm) {
259260
u.HashPassword(form.Password)
260261
}
261262

262-
if u.IsLocal() && len(form.UserName) > 0 && u.Name != form.UserName {
263-
if err := models.ChangeUserName(u, form.UserName); err != nil {
264-
ctx.InternalServerError(err)
263+
if len(form.UserName) > 0 && u.Name != form.UserName {
264+
router_user_setting.HandleUsernameChange(ctx, u, form.UserName)
265+
if ctx.Written() {
265266
return
266267
}
267268
u.Name = form.UserName
269+
u.LowerName = strings.ToLower(form.UserName)
268270
}
269271

270272
u.LoginName = form.LoginName

routers/user/setting/profile.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,16 @@ func Profile(ctx *context.Context) {
3838
ctx.HTML(200, tplSettingsProfile)
3939
}
4040

41-
func handleUsernameChange(ctx *context.Context, newName string) {
41+
// HandleUsernameChange handle username changes from user settings and admin interface
42+
func HandleUsernameChange(ctx *context.Context, user *models.User, newName string) {
4243
// Non-local users are not allowed to change their username.
43-
if len(newName) == 0 || !ctx.User.IsLocal() {
44+
if len(newName) == 0 || !user.IsLocal() {
4445
return
4546
}
4647

4748
// Check if user name has been changed
48-
if ctx.User.LowerName != strings.ToLower(newName) {
49-
if err := models.ChangeUserName(ctx.User, newName); err != nil {
49+
if user.LowerName != strings.ToLower(newName) {
50+
if err := models.ChangeUserName(user, newName); err != nil {
5051
switch {
5152
case models.IsErrUserAlreadyExist(err):
5253
ctx.Flash.Error(ctx.Tr("form.username_been_taken"))
@@ -68,12 +69,8 @@ func handleUsernameChange(ctx *context.Context, newName string) {
6869
}
6970
return
7071
}
71-
log.Trace("User name changed: %s -> %s", ctx.User.Name, newName)
72+
log.Trace("User name changed: %s -> %s", user.Name, newName)
7273
}
73-
74-
// In case it's just a case change
75-
ctx.User.Name = newName
76-
ctx.User.LowerName = strings.ToLower(newName)
7774
}
7875

7976
// ProfilePost response for change user's profile
@@ -86,9 +83,13 @@ func ProfilePost(ctx *context.Context, form auth.UpdateProfileForm) {
8683
return
8784
}
8885

89-
handleUsernameChange(ctx, form.Name)
90-
if ctx.Written() {
91-
return
86+
if len(form.Name) != 0 && ctx.User.Name != form.Name {
87+
HandleUsernameChange(ctx, ctx.User, form.Name)
88+
if ctx.Written() {
89+
return
90+
}
91+
ctx.User.Name = form.Name
92+
ctx.User.LowerName = strings.ToLower(form.Name)
9293
}
9394

9495
ctx.User.FullName = form.FullName

0 commit comments

Comments
 (0)