Fix bug of get context user (#17169)

Co-authored-by: 6543 <6543@obermui.de>
tokarchuk/v1.17
Lunny Xiao 3 years ago committed by GitHub
parent a82c799fc8
commit 37b29319aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      modules/context/context.go
  2. 11
      routers/web/base.go

@ -547,6 +547,17 @@ func GetContext(req *http.Request) *Context {
return req.Context().Value(contextKey).(*Context) return req.Context().Value(contextKey).(*Context)
} }
// GetContextUser returns context user
func GetContextUser(req *http.Request) *models.User {
if apiContext, ok := req.Context().Value(apiContextKey).(*APIContext); ok {
return apiContext.User
}
if ctx, ok := req.Context().Value(contextKey).(*Context); ok {
return ctx.User
}
return nil
}
// SignedUserName returns signed user's name via context // SignedUserName returns signed user's name via context
func SignedUserName(req *http.Request) string { func SignedUserName(req *http.Request) string {
if middleware.IsInternalPath(req) { if middleware.IsInternalPath(req) {

@ -14,7 +14,6 @@ import (
"path/filepath" "path/filepath"
"strings" "strings"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/httpcache" "code.gitea.io/gitea/modules/httpcache"
"code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/log"
@ -147,15 +146,7 @@ func Recovery() func(next http.Handler) http.Handler {
"i18n": lc, "i18n": lc,
} }
var user *models.User var user = context.GetContextUser(req)
if apiContext := context.GetAPIContext(req); apiContext != nil {
user = apiContext.User
}
if user == nil {
if ctx := context.GetContext(req); ctx != nil {
user = ctx.User
}
}
if user == nil { if user == nil {
// Get user from session if logged in - do not attempt to sign-in // Get user from session if logged in - do not attempt to sign-in
user = auth.SessionUser(sessionStore) user = auth.SessionUser(sessionStore)

Loading…
Cancel
Save