mirror of
https://github.com/gogs/gogs.git
synced 2026-01-23 07:42:21 +01:00
models/user: better directory handling when change username
Previously, if the user base directory somehow doesn't exist, the application throws 500 for failure of rename. Now it detects if the application should rename or just create a new directory.
This commit is contained in:
@@ -682,7 +682,13 @@ func ChangeUserName(u *User, newUserName string) (err error) {
|
||||
return fmt.Errorf("Delete repository wiki local copy: %v", err)
|
||||
}
|
||||
|
||||
return os.Rename(UserPath(u.Name), UserPath(newUserName))
|
||||
// Rename or create user base directory
|
||||
baseDir := UserPath(u.Name)
|
||||
newBaseDir := UserPath(newUserName)
|
||||
if com.IsExist(baseDir) {
|
||||
return os.Rename(baseDir, newBaseDir)
|
||||
}
|
||||
return os.MkdirAll(newBaseDir, os.ModePerm)
|
||||
}
|
||||
|
||||
func updateUser(e Engine, u *User) error {
|
||||
|
||||
Reference in New Issue
Block a user