feat(admin): 站点信息 + 注册开关可后台设置,模板动态渲染
新增 4 项可配置站点设置(DB持久化+内存缓存,即时生效): - site.brand 品牌名(页面标题/页脚/管理面板,默认 MetaLab) - site.framework 框架名(页脚标识,默认 MetaZone) - site.copyright_start 版权起始年(页脚,默认 2024) - registration.enabled 注册开关(关闭后禁止新用户注册,默认 true) 实现方式: - InjectSiteInfo 中间件:全局注入 Brand/Framework/CopyrightStart 到 gin.Context - BuildPageData 读取 context,所有 SSR 页面自动获取站点信息 - AuthService.Register 最先检查 IsRegistrationEnabled() - 管理后台新增「基本设置」+「注册设置」区块,文本输入手动保存 + Toggle 即时生效
This commit is contained in:
@ -107,3 +107,26 @@ func (s *SiteSettings) IsAuditEnabled() bool {
|
||||
func (s *SiteSettings) IsAuditTypeEnabled(auditType string, defaultVal bool) bool {
|
||||
return s.GetBool("audit."+auditType, defaultVal)
|
||||
}
|
||||
|
||||
// --- 站点信息设置 ---
|
||||
|
||||
// SiteInfoDefaults 站点展示信息的默认值
|
||||
type SiteInfoDefaults struct {
|
||||
Brand string // 品牌名,默认 "MetaLab"
|
||||
Framework string // 框架名,默认 "MetaZone"
|
||||
CopyrightStart string // 版权起始年份,默认 "2024"
|
||||
}
|
||||
|
||||
// SiteInfo 获取站点展示信息(优先 DB 设置,fallback 默认值)
|
||||
func (s *SiteSettings) SiteInfo() SiteInfoDefaults {
|
||||
return SiteInfoDefaults{
|
||||
Brand: s.Get("site.brand", "MetaLab"),
|
||||
Framework: s.Get("site.framework", "MetaZone"),
|
||||
CopyrightStart: s.Get("site.copyright_start", "2024"),
|
||||
}
|
||||
}
|
||||
|
||||
// IsRegistrationEnabled 是否允许新用户注册
|
||||
func (s *SiteSettings) IsRegistrationEnabled() bool {
|
||||
return s.GetBool("registration.enabled", true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user