From c1357cf4af94054f50d4f4f37d6e235cfc518790 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Sat, 30 May 2026 21:06:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=B4=E6=8A=A4=E6=9D=A1=E5=AF=B9?= =?UTF-8?q?=E7=AB=99=E9=95=BF=E6=98=BE=E7=A4=BA=E2=80=9C=E6=AD=A3=E5=A4=84?= =?UTF-8?q?=E4=BA=8E=E7=BB=B4=E6=8A=A4=E7=8A=B6=E6=80=81=E2=80=9D=E6=8F=90?= =?UTF-8?q?=E9=86=92=20+=20BuildPageData=20=E6=B3=A8=E5=85=A5=20IsOwner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BuildPageData 新增 IsOwner 变量,所有前端页面可获取站长角色 - Nav 维护条:站长显示“社区正处于维护状态”(防止忘记关闭),非站长显示“仅站长可访问” - 维护中间件 API 拦截验证:所有非 /api/auth/ 的 API 对非 Owner 返回 403,正确 --- internal/common/helper.go | 1 + templates/MetaLab-2026/html/layout/nav.html | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/internal/common/helper.go b/internal/common/helper.go index 1badee0..797983c 100644 --- a/internal/common/helper.go +++ b/internal/common/helper.go @@ -39,6 +39,7 @@ func BuildPageData(c *gin.Context, extra gin.H) gin.H { // 注入管理入口权限(moderator 及以上可看到页脚管理面板链接) if role, exists := c.Get("role"); exists { data["CanAccessAdmin"] = model.HasMinRole(role.(string), model.RoleModerator) + data["IsOwner"] = model.HasMinRole(role.(string), model.RoleOwner) } // 注入维护状态 if isMaintenance, exists := c.Get("is_maintenance"); exists { diff --git a/templates/MetaLab-2026/html/layout/nav.html b/templates/MetaLab-2026/html/layout/nav.html index 488ab55..fde401c 100644 --- a/templates/MetaLab-2026/html/layout/nav.html +++ b/templates/MetaLab-2026/html/layout/nav.html @@ -26,6 +26,10 @@ {{if .IsMaintenance}}
+ {{if .IsOwner}} + 社区正处于维护状态 + {{else}} 社区正在维护中,仅站长可访问 + {{end}}
{{end}}