fix: 维护条对站长显示“正处于维护状态”提醒 + BuildPageData 注入 IsOwner
- BuildPageData 新增 IsOwner 变量,所有前端页面可获取站长角色 - Nav 维护条:站长显示“社区正处于维护状态”(防止忘记关闭),非站长显示“仅站长可访问” - 维护中间件 API 拦截验证:所有非 /api/auth/ 的 API 对非 Owner 返回 403,正确
This commit is contained in:
@ -39,6 +39,7 @@ func BuildPageData(c *gin.Context, extra gin.H) gin.H {
|
|||||||
// 注入管理入口权限(moderator 及以上可看到页脚管理面板链接)
|
// 注入管理入口权限(moderator 及以上可看到页脚管理面板链接)
|
||||||
if role, exists := c.Get("role"); exists {
|
if role, exists := c.Get("role"); exists {
|
||||||
data["CanAccessAdmin"] = model.HasMinRole(role.(string), model.RoleModerator)
|
data["CanAccessAdmin"] = model.HasMinRole(role.(string), model.RoleModerator)
|
||||||
|
data["IsOwner"] = model.HasMinRole(role.(string), model.RoleOwner)
|
||||||
}
|
}
|
||||||
// 注入维护状态
|
// 注入维护状态
|
||||||
if isMaintenance, exists := c.Get("is_maintenance"); exists {
|
if isMaintenance, exists := c.Get("is_maintenance"); exists {
|
||||||
|
|||||||
@ -26,6 +26,10 @@
|
|||||||
{{if .IsMaintenance}}
|
{{if .IsMaintenance}}
|
||||||
<div class="maintenance-banner">
|
<div class="maintenance-banner">
|
||||||
<span class="maintenance-banner-icon">⚙</span>
|
<span class="maintenance-banner-icon">⚙</span>
|
||||||
|
{{if .IsOwner}}
|
||||||
|
<span>社区正处于维护状态</span>
|
||||||
|
{{else}}
|
||||||
<span>社区正在维护中,仅站长可访问</span>
|
<span>社区正在维护中,仅站长可访问</span>
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|||||||
Reference in New Issue
Block a user