mirror of https://github.com/go-gitea/gitea
add user rename endpoint to admin api (#22789)
this is a simple endpoint that adds the ability to rename users to the admin API. Note: this is not in a mergeable state. It would be better if this was handled by a PATCH/POST to the /api/v1/admin/users/{username} endpoint and the username is modified. --------- Co-authored-by: Jason Song <i@wolfogre.com>pull/22792/head^2
parent
aac07d010f
commit
03591f0f95
@ -0,0 +1,41 @@ |
||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package user |
||||
|
||||
import ( |
||||
"context" |
||||
"fmt" |
||||
"strings" |
||||
|
||||
user_model "code.gitea.io/gitea/models/user" |
||||
"code.gitea.io/gitea/modules/log" |
||||
"code.gitea.io/gitea/services/agit" |
||||
container_service "code.gitea.io/gitea/services/packages/container" |
||||
) |
||||
|
||||
func renameUser(ctx context.Context, u *user_model.User, newUserName string) error { |
||||
if u.IsOrganization() { |
||||
return fmt.Errorf("cannot rename organization") |
||||
} |
||||
|
||||
if err := user_model.ChangeUserName(ctx, u, newUserName); err != nil { |
||||
return err |
||||
} |
||||
|
||||
if err := agit.UserNameChanged(ctx, u, newUserName); err != nil { |
||||
return err |
||||
} |
||||
if err := container_service.UpdateRepositoryNames(ctx, u, newUserName); err != nil { |
||||
return err |
||||
} |
||||
|
||||
u.Name = newUserName |
||||
u.LowerName = strings.ToLower(newUserName) |
||||
if err := user_model.UpdateUser(ctx, u, false); err != nil { |
||||
return err |
||||
} |
||||
|
||||
log.Trace("User name changed: %s -> %s", u.Name, newUserName) |
||||
return nil |
||||
} |
Loading…
Reference in new issue