mirror of
https://github.com/go-gitea/gitea
synced 2025-07-15 23:17:19 +00:00
Fix access log (#14475)
Fix #14121, #14478. The `AccessLog` middleware has to be after `Contexter` or `APIContexter` so that we can get `LoginUserName` if possible. And also there is a **BREAK** change that it removed internal API access log.
This commit is contained in:
@@ -485,6 +485,31 @@ func GetContext(req *http.Request) *Context {
|
||||
return req.Context().Value(contextKey).(*Context)
|
||||
}
|
||||
|
||||
// SignedUserName returns signed user's name via context
|
||||
func SignedUserName(req *http.Request) string {
|
||||
if middlewares.IsInternalPath(req) {
|
||||
return ""
|
||||
}
|
||||
if middlewares.IsAPIPath(req) {
|
||||
ctx, ok := req.Context().Value(apiContextKey).(*APIContext)
|
||||
if ok {
|
||||
v := ctx.Data["SignedUserName"]
|
||||
if res, ok := v.(string); ok {
|
||||
return res
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ctx, ok := req.Context().Value(contextKey).(*Context)
|
||||
if ok {
|
||||
v := ctx.Data["SignedUserName"]
|
||||
if res, ok := v.(string); ok {
|
||||
return res
|
||||
}
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func getCsrfOpts() CsrfOptions {
|
||||
return CsrfOptions{
|
||||
Secret: setting.SecretKey,
|
||||
|
Reference in New Issue
Block a user