summaryrefslogtreecommitdiffstats
path: root/modules/context/api.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-08-04 18:26:30 +0100
committerGitHub <noreply@github.com>2021-08-04 13:26:30 -0400
commit7c4172ef71a0805f16b8bd89188bb1b4d3e33f9b (patch)
tree4daee35e7dee3393d457ccf1e3ade708fe65dde7 /modules/context/api.go
parentf03abe8fb1919eed9c5a923f4f2c438a5fca351a (diff)
downloadgitea-7c4172ef71a0805f16b8bd89188bb1b4d3e33f9b.tar.gz
gitea-7c4172ef71a0805f16b8bd89188bb1b4d3e33f9b.zip
Pass down SignedUserName down to AccessLogger context (#16605)
* Pass down SignedUserName down to AccessLogger context Unfortunately when the AccessLogger was moved back before the contexters the SignedUserName reporting was lost. This is due to Request.WithContext leading to a shallow copy of the Request and the modules/context/Context being within that request. This PR adds a new context variable of a string pointer which is set and handled in the contexters. Fix #16600 Signed-off-by: Andrew Thornton <art27@cantab.net> * handle nil ptr issue Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/context/api.go')
-rw-r--r--modules/context/api.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/context/api.go b/modules/context/api.go
index a21e0d7402..8f1ed3f2ce 100644
--- a/modules/context/api.go
+++ b/modules/context/api.go
@@ -275,6 +275,17 @@ func APIContexter() func(http.Handler) http.Handler {
ctx.Data["CsrfToken"] = html.EscapeString(ctx.csrf.GetToken())
next.ServeHTTP(ctx.Resp, ctx.Req)
+
+ // Handle adding signedUserName to the context for the AccessLogger
+ usernameInterface := ctx.Data["SignedUserName"]
+ identityPtrInterface := ctx.Req.Context().Value(signedUserNameStringPointerKey)
+ if usernameInterface != nil && identityPtrInterface != nil {
+ username := usernameInterface.(string)
+ identityPtr := identityPtrInterface.(*string)
+ if identityPtr != nil && username != "" {
+ *identityPtr = username
+ }
+ }
})
}
}