diff options
author | hazy <hazycora@gmail.com> | 2023-09-19 20:48:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-20 01:48:44 +0000 |
commit | 74a5db03fde795ffe1a97dc6ffa958a4e11141ec (patch) | |
tree | 227efd9d54313a3ee522b973fea6b6cf0147fd69 /routers/web/user | |
parent | 2814f2fea1313992c588444ead3643e54ea57c4d (diff) | |
download | gitea-74a5db03fde795ffe1a97dc6ffa958a4e11141ec.tar.gz gitea-74a5db03fde795ffe1a97dc6ffa958a4e11141ec.zip |
Fix: treat tab "overview" as "repositories" in user profiles without readme (#27124)
Beginning since 2af30f715e64dbb0a3900168e3768ffb36c06392, Gitea has a
500 error when visiting a user profile with `?tab=overview` in the URL
when the user doesn't have a `.profile/README.md`, because the backend
code assumes that if the tab is overview a profile repository must
exist, and checks that the repository is nil aren't done.
In this PR I treat `?tab=overview` the same as if no tab is set in the
URL, which corrects this behaviour- Now, when visiting `?tab=overview`,
if `.profile/README.md` exists on that user's profile it'll show that as
it should, otherwise it'll show the repositories tab.
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'routers/web/user')
-rw-r--r-- | routers/web/user/profile.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/routers/web/user/profile.go b/routers/web/user/profile.go index 380a681b9d..d9a0124020 100644 --- a/routers/web/user/profile.go +++ b/routers/web/user/profile.go @@ -77,8 +77,9 @@ func userProfile(ctx *context.Context) { func prepareUserProfileTabData(ctx *context.Context, showPrivate bool, profileGitRepo *git.Repository, profileReadme *git.Blob) { // if there is a profile readme, default to "overview" page, otherwise, default to "repositories" page + // if there is not a profile readme, the overview tab should be treated as the repositories tab tab := ctx.FormString("tab") - if tab == "" { + if tab == "" || tab == "overview" { if profileReadme != nil { tab = "overview" } else { |