feat: Add audit logging (#38189)

Co-authored-by: bircni <bircni@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
bircni
2026-09-12 10:15:23 +02:00
committed by GitHub
parent 4d43445532
commit da37b7916b
136 changed files with 3864 additions and 209 deletions
+13
View File
@@ -5,6 +5,7 @@ package common
import (
user_model "gitea.dev/models/user"
"gitea.dev/modules/log"
"gitea.dev/modules/web/middleware"
auth_service "gitea.dev/services/auth"
"gitea.dev/services/context"
@@ -30,6 +31,18 @@ func AuthShared(ctx *context.Base, sessionStore auth_service.SessionStore, authM
ctx.Data[middleware.ContextDataKeySignedUser] = ar.Doer
ctx.Data["SignedUserID"] = ar.Doer.ID
ctx.Data["IsAdmin"] = ar.Doer.IsAdmin
if sessionStore != nil {
if uid := auth_service.ImpersonatorUserID(sessionStore); uid != 0 {
impersonator, err := user_model.GetUserByID(ctx, uid)
if err != nil {
// the session stays usable, but audit events must not silently lose the admin behind it
log.Error("Unable to resolve impersonator %d: %v", uid, err)
} else {
ctx.Data[middleware.ContextDataKeyImpersonator] = impersonator
}
}
}
} else {
ctx.Data["SignedUserID"] = int64(0)
}