Fixes a wrong 302 redirect to the login page, see https://github.com/go-gitea/gitea/issues/11989. Also made it so the reserved username list is extended with those known entries so we avoid code duplication.tags/v1.12.1
@@ -29,6 +29,7 @@ import ( | |||
"code.gitea.io/gitea/modules/generate" | |||
"code.gitea.io/gitea/modules/git" | |||
"code.gitea.io/gitea/modules/log" | |||
"code.gitea.io/gitea/modules/public" | |||
"code.gitea.io/gitea/modules/setting" | |||
"code.gitea.io/gitea/modules/structs" | |||
api "code.gitea.io/gitea/modules/structs" | |||
@@ -878,7 +879,7 @@ func (u *User) IsGhost() bool { | |||
} | |||
var ( | |||
reservedUsernames = []string{ | |||
reservedUsernames = append([]string{ | |||
".", | |||
"..", | |||
".well-known", | |||
@@ -888,17 +889,13 @@ var ( | |||
"attachments", | |||
"avatars", | |||
"commits", | |||
"css", | |||
"debug", | |||
"error", | |||
"explore", | |||
"fomantic", | |||
"ghost", | |||
"help", | |||
"img", | |||
"install", | |||
"issues", | |||
"js", | |||
"less", | |||
"login", | |||
"manifest.json", | |||
@@ -916,8 +913,8 @@ var ( | |||
"stars", | |||
"template", | |||
"user", | |||
"vendor", | |||
} | |||
}, public.KnownPublicEntries...) | |||
reservedUserPatterns = []string{"*.keys", "*.gpg"} | |||
) | |||
@@ -30,12 +30,13 @@ type Options struct { | |||
Prefix string | |||
} | |||
// List of known entries inside the `public` directory | |||
var knownEntries = []string{ | |||
// KnownPublicEntries list all direct children in the `public` directory | |||
var KnownPublicEntries = []string{ | |||
"css", | |||
"fomantic", | |||
"img", | |||
"js", | |||
"serviceworker.js", | |||
"vendor", | |||
} | |||
@@ -114,7 +115,7 @@ func (opts *Options) handle(ctx *macaron.Context, log *log.Logger, opt *Options) | |||
if len(parts) < 2 { | |||
return false | |||
} | |||
for _, entry := range knownEntries { | |||
for _, entry := range KnownPublicEntries { | |||
if entry == parts[1] { | |||
ctx.Resp.WriteHeader(404) | |||
return true |