@@ -39,10 +39,11 @@ func Profile(ctx *context.Context) {
39
39
}
40
40
41
41
// HandleUsernameChange handle username changes from user settings and admin interface
42
- func HandleUsernameChange (ctx * context.Context , user * models.User , newName string ) {
42
+ func HandleUsernameChange (ctx * context.Context , user * models.User , newName string ) error {
43
43
// Non-local users are not allowed to change their username.
44
- if len (newName ) == 0 || ! user .IsLocal () {
45
- return
44
+ if ! user .IsLocal () {
45
+ ctx .Flash .Error (ctx .Tr ("form.username_change_not_local_user" ))
46
+ return fmt .Errorf (ctx .Tr ("form.username_change_not_local_user" ))
46
47
}
47
48
48
49
// Check if user name has been changed
@@ -51,26 +52,22 @@ func HandleUsernameChange(ctx *context.Context, user *models.User, newName strin
51
52
switch {
52
53
case models .IsErrUserAlreadyExist (err ):
53
54
ctx .Flash .Error (ctx .Tr ("form.username_been_taken" ))
54
- ctx .Redirect (setting .AppSubURL + "/user/settings" )
55
55
case models .IsErrEmailAlreadyUsed (err ):
56
56
ctx .Flash .Error (ctx .Tr ("form.email_been_used" ))
57
- ctx .Redirect (setting .AppSubURL + "/user/settings" )
58
57
case models .IsErrNameReserved (err ):
59
58
ctx .Flash .Error (ctx .Tr ("user.form.name_reserved" , newName ))
60
- ctx .Redirect (setting .AppSubURL + "/user/settings" )
61
59
case models .IsErrNamePatternNotAllowed (err ):
62
60
ctx .Flash .Error (ctx .Tr ("user.form.name_pattern_not_allowed" , newName ))
63
- ctx .Redirect (setting .AppSubURL + "/user/settings" )
64
61
case models .IsErrNameCharsNotAllowed (err ):
65
62
ctx .Flash .Error (ctx .Tr ("user.form.name_chars_not_allowed" , newName ))
66
- ctx .Redirect (setting .AppSubURL + "/user/settings" )
67
63
default :
68
64
ctx .ServerError ("ChangeUserName" , err )
69
65
}
70
- return
66
+ return err
71
67
}
72
68
log .Trace ("User name changed: %s -> %s" , user .Name , newName )
73
69
}
70
+ return nil
74
71
}
75
72
76
73
// ProfilePost response for change user's profile
@@ -84,8 +81,8 @@ func ProfilePost(ctx *context.Context, form auth.UpdateProfileForm) {
84
81
}
85
82
86
83
if len (form .Name ) != 0 && ctx .User .Name != form .Name {
87
- HandleUsernameChange (ctx , ctx .User , form .Name )
88
- if ctx .Written () {
84
+ if err := HandleUsernameChange (ctx , ctx .User , form .Name ); err != nil {
85
+ ctx .Redirect ( setting . AppSubURL + "/user/settings" )
89
86
return
90
87
}
91
88
ctx .User .Name = form .Name
0 commit comments