Browse Source

fix incorrect repo url when changed the case of ownername (#25733) (#25881)

Backport #25733 by @hiifong

When only the casing of the username changes, update the owner name of the repo,
and keep the original logic consistent with other conditions.

example: assume your username is `gitea`, lowercase username is `gitea` too,
repo URL is `.../gitea/{repo}`.
You change your username to `Gitea`, `GiTea` or something like that,
as long as the lowercase username is still `gitea`, the repo URL remained `.../gitea/{repo}`.

this pr keeps the new username consistent with the repo URL.

Before:

![image](https://github.com/go-gitea/gitea/assets/89133723/84177296-f0ff-4176-84f1-1f9ec3f5b86f)
![image](https://github.com/go-gitea/gitea/assets/89133723/8f8f4a12-ecdd-4dec-af89-85c009b0ccfe)

After: 

![image](https://github.com/go-gitea/gitea/assets/89133723/0564edb6-9467-405a-8cd4-d6f70e6f614b)
![image](https://github.com/go-gitea/gitea/assets/89133723/554ecd6e-e5a1-43bc-a46d-99e988c2ff58)

Co-authored-by: hiifong <i@hiif.ong>
tags/v1.20.0
Giteabot 11 months ago
parent
commit
de8127e78b
No account linked to committer's email address
2 changed files with 1 additions and 7 deletions
  1. 0
    6
      routers/web/org/setting.go
  2. 1
    1
      services/user/user.go

+ 0
- 6
routers/web/org/setting.go View File

@@ -89,7 +89,6 @@ func SettingsPost(ctx *context.Context) {
// reset ctx.org.OrgLink with new name
ctx.Org.OrgLink = setting.AppSubURL + "/org/" + url.PathEscape(form.Name)
log.Trace("Organization name changed: %s -> %s", org.Name, form.Name)
nameChanged = false
}

// In case it's just a case change.
@@ -130,11 +129,6 @@ func SettingsPost(ctx *context.Context) {
return
}
}
} else if nameChanged {
if err := repo_model.UpdateRepositoryOwnerNames(org.ID, org.Name); err != nil {
ctx.ServerError("UpdateRepository", err)
return
}
}

log.Trace("Organization setting updated: %s", org.Name)

+ 1
- 1
services/user/user.go View File

@@ -58,7 +58,7 @@ func RenameUser(ctx context.Context, u *user_model.User, newUserName string) err
u.Name = oldUserName
return err
}
return nil
return repo_model.UpdateRepositoryOwnerNames(u.ID, newUserName)
}

ctx, committer, err := db.TxContext(ctx)

Loading…
Cancel
Save