enhance(admin): show impersonation banner and keep password change with the user (#38924)

Follow-up to https://github.com/go-gitea/gitea/pull/38614

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
bircni
2026-08-14 16:23:30 +02:00
committed by GitHub
parent b6368965fb
commit dbe311197c
15 changed files with 73 additions and 22 deletions
+9
View File
@@ -12,6 +12,7 @@ import (
"strings"
"time"
user_model "gitea.dev/models/user"
"gitea.dev/modules/htmlutil"
"gitea.dev/modules/httplib"
"gitea.dev/modules/public"
@@ -66,6 +67,14 @@ func (c TemplateContext) CurrentWebTheme() *webtheme.ThemeMetaInfo {
return webtheme.GuaranteeGetThemeMetaInfo(themeName)
}
func (c TemplateContext) ImpersonatedUser() *user_model.User {
webCtx := GetWebContext(c)
if webCtx == nil || webCtx.Doer == nil || !webCtx.DoerIsImpersonated() {
return nil
}
return webCtx.Doer
}
func (c TemplateContext) CurrentWebBanner() *setting.WebBannerType {
// Using revision as a simple approach to determine if the banner has been changed after the user dismissed it.
// There could be some false-positives because revision can be changed even if the banner isn't.