diff options
author | Denys Konovalov <kontakt@denyskon.de> | 2023-08-31 11:21:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-31 11:21:18 +0200 |
commit | 5b5bb8d3546e6504b689b01d3ac4897dda3aee3d (patch) | |
tree | 5ab8490deabf779acbe4aadcd888b9cf0816c540 /routers/web/admin | |
parent | 3d109861ddf95846905143b4cf39129bf253161e (diff) | |
download | gitea-5b5bb8d3546e6504b689b01d3ac4897dda3aee3d.tar.gz gitea-5b5bb8d3546e6504b689b01d3ac4897dda3aee3d.zip |
User details page (#26713)
This PR implements a proposal to clean up the admin users table by
moving some information out to a separate user details page (which also
displays some additional information).
Other changes:
- move edit user page from `/admin/users/{id}` to
`/admin/users/{id}/edit` -> `/admin/users/{id}` now shows the user
details page
- show if user is instance administrator as a label instead of a
separate column
- separate explore users template into a page- and a shared one, to make
it possible to use it on the user details page
- fix issue where there was no margin between alert message and
following content on admin pages
<details>
<summary>Screenshots</summary>
![grafik](https://github.com/go-gitea/gitea/assets/47871822/1ad57ac9-f20a-45a4-8477-ffe572a41e9e)
![grafik](https://github.com/go-gitea/gitea/assets/47871822/25786ecd-cb9d-4c92-90f4-e7f4292c073b)
</details>
Partially resolves #25939
---------
Co-authored-by: Giteabot <teabot@gitea.io>
Diffstat (limited to 'routers/web/admin')
-rw-r--r-- | routers/web/admin/users.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go index e560a88b4c..61df49b85b 100644 --- a/routers/web/admin/users.go +++ b/routers/web/admin/users.go @@ -13,6 +13,8 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/models/auth" "code.gitea.io/gitea/models/db" + org_model "code.gitea.io/gitea/models/organization" + repo_model "code.gitea.io/gitea/models/repo" system_model "code.gitea.io/gitea/models/system" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/auth/password" @@ -32,6 +34,7 @@ import ( const ( tplUsers base.TplName = "admin/user/list" tplUserNew base.TplName = "admin/user/new" + tplUserView base.TplName = "admin/user/view" tplUserEdit base.TplName = "admin/user/edit" ) @@ -249,6 +252,61 @@ func prepareUserInfo(ctx *context.Context) *user_model.User { return u } +func ViewUser(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("admin.users.details") + ctx.Data["PageIsAdminUsers"] = true + ctx.Data["DisableRegularOrgCreation"] = setting.Admin.DisableRegularOrgCreation + ctx.Data["DisableMigrations"] = setting.Repository.DisableMigrations + ctx.Data["AllowedUserVisibilityModes"] = setting.Service.AllowedUserVisibilityModesSlice.ToVisibleTypeSlice() + + u := prepareUserInfo(ctx) + if ctx.Written() { + return + } + + repos, count, err := repo_model.SearchRepository(ctx, &repo_model.SearchRepoOptions{ + ListOptions: db.ListOptions{ + ListAll: true, + }, + OwnerID: u.ID, + OrderBy: db.SearchOrderByAlphabetically, + Private: true, + Collaborate: util.OptionalBoolFalse, + }) + if err != nil { + ctx.ServerError("SearchRepository", err) + return + } + + ctx.Data["Repos"] = repos + ctx.Data["ReposTotal"] = int(count) + + emails, err := user_model.GetEmailAddresses(ctx.Doer.ID) + if err != nil { + ctx.ServerError("GetEmailAddresses", err) + return + } + ctx.Data["Emails"] = emails + ctx.Data["EmailsTotal"] = len(emails) + + orgs, err := org_model.FindOrgs(org_model.FindOrgOptions{ + ListOptions: db.ListOptions{ + ListAll: true, + }, + UserID: u.ID, + IncludePrivate: true, + }) + if err != nil { + ctx.ServerError("FindOrgs", err) + return + } + + ctx.Data["Users"] = orgs // needed to be able to use explore/user_list template + ctx.Data["OrgsTotal"] = len(orgs) + + ctx.HTML(http.StatusOK, tplUserView) +} + // EditUser show editing user page func EditUser(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("admin.users.edit_account") |