diff --git a/internal/controller/auth_controller.go b/internal/controller/auth_controller.go index a84d0f7..8590202 100644 --- a/internal/controller/auth_controller.go +++ b/internal/controller/auth_controller.go @@ -1,6 +1,7 @@ package controller import ( + "html/template" "net/http" "metazone.cc/metalab/internal/common" @@ -17,11 +18,12 @@ type AuthController struct { sessionManager *session.Manager rateLimiter rateLimiter cfg *config.Config + siteSettings *config.SiteSettings } // NewAuthController 构造函数 -func NewAuthController(authService authUseCase, sm *session.Manager, limiter rateLimiter, cfg *config.Config) *AuthController { - return &AuthController{authService: authService, sessionManager: sm, rateLimiter: limiter, cfg: cfg} +func NewAuthController(authService authUseCase, sm *session.Manager, limiter rateLimiter, cfg *config.Config, siteSettings *config.SiteSettings) *AuthController { + return &AuthController{authService: authService, sessionManager: sm, rateLimiter: limiter, cfg: cfg, siteSettings: siteSettings} } // RegisterPage 注册页面(已登录用户重定向到首页) @@ -30,10 +32,18 @@ func (ac *AuthController) RegisterPage(c *gin.Context) { c.Redirect(http.StatusFound, "/") return } - guidelines, err := theme.LoadContent("templates/MetaLab-2026/guidelines.html") - if err != nil { - c.String(http.StatusInternalServerError, "加载准则失败") - return + // 优先从 DB 读取社区准则,为空时 fallback 到静态文件 + guidelinesHTML := ac.siteSettings.Get("site.guidelines", "") + var guidelines template.HTML + if guidelinesHTML != "" { + guidelines = template.HTML(guidelinesHTML) + } else { + content, err := theme.LoadContent("templates/MetaLab-2026/guidelines.html") + if err != nil { + c.String(http.StatusInternalServerError, "加载准则失败") + return + } + guidelines = content } c.HTML(http.StatusOK, "auth/register.html", common.BuildPageData(c, gin.H{ "Title": "注册", diff --git a/internal/router/deps_core.go b/internal/router/deps_core.go index 3ece49e..cb68686 100644 --- a/internal/router/deps_core.go +++ b/internal/router/deps_core.go @@ -78,7 +78,7 @@ func buildDepsCore(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSet sessionMgr := session.NewManager(sessionStore, userRepo, cfg) authService := service.NewAuthService(userRepo, sessionMgr, cfg, siteSettings) rateLimiter := middleware.NewRateLimiter() - authCtrl := controller.NewAuthController(authService, sessionMgr, rateLimiter, cfg) + authCtrl := controller.NewAuthController(authService, sessionMgr, rateLimiter, cfg, siteSettings) avatarSvc := service.NewAvatarService(userRepo) authMdw := middleware.NewAuthMiddleware(cfg, sessionMgr) return userRepo, sessionMgr, authService, rateLimiter, authCtrl, avatarSvc, authMdw diff --git a/templates/admin/html/site-settings/index.html b/templates/admin/html/site-settings/index.html index 176dd32..6ad0033 100644 --- a/templates/admin/html/site-settings/index.html +++ b/templates/admin/html/site-settings/index.html @@ -115,6 +115,23 @@ + +