From d426866574b6a0fc4a0b0ddc93bb52520f96795e Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 11 Oct 2024 23:00:29 -0700 Subject: [PATCH 1/2] Fix change user type failed return rename bug --- routers/web/admin/users.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go index a6b0b5c78bb13..567a6ee60ef0f 100644 --- a/routers/web/admin/users.go +++ b/routers/web/admin/users.go @@ -347,7 +347,7 @@ func EditUserPost(ctx *context.Context) { return } - if form.UserName != "" { + if form.UserName != "" && form.UserName != u.Name { if err := user_service.RenameUser(ctx, u, form.UserName); err != nil { switch { case user_model.IsErrUserIsNotLocal(err): From 28d5d519ba8585532863a4a722621eb10c914ac5 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 12 Oct 2024 08:41:55 -0700 Subject: [PATCH 2/2] check rename condition in the service method instead of outside --- routers/web/admin/users.go | 2 +- services/user/user.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go index 567a6ee60ef0f..a6b0b5c78bb13 100644 --- a/routers/web/admin/users.go +++ b/routers/web/admin/users.go @@ -347,7 +347,7 @@ func EditUserPost(ctx *context.Context) { return } - if form.UserName != "" && form.UserName != u.Name { + if form.UserName != "" { if err := user_service.RenameUser(ctx, u, form.UserName); err != nil { switch { case user_model.IsErrUserIsNotLocal(err): diff --git a/services/user/user.go b/services/user/user.go index 2287e36c716ac..9aded62a51af8 100644 --- a/services/user/user.go +++ b/services/user/user.go @@ -32,6 +32,10 @@ import ( // RenameUser renames a user func RenameUser(ctx context.Context, u *user_model.User, newUserName string) error { + if newUserName == u.Name { + return nil + } + // Non-local users are not allowed to change their username. if !u.IsOrganization() && !u.IsLocal() { return user_model.ErrUserIsNotLocal{ @@ -40,10 +44,6 @@ func RenameUser(ctx context.Context, u *user_model.User, newUserName string) err } } - if newUserName == u.Name { - return nil - } - if err := user_model.IsUsableUsername(newUserName); err != nil { return err }