Files
mce/templates/admin/html/site-settings/registration.html
Victor_Jay 2449a27eb5
Some checks failed
CI / Lint + Build (push) Has been cancelled
refactor: CSP nonce替代unsafe-inline, HSTS始终启用, router/api拆分, 管理后台+用户设置页拆分, DB健康降级, 时区配置, UID统一解析, CI接入
审计修复:
- CSP: unsafe-inline移除, nonce替代; unsafe-eval保留供Vditor使用
- HSTS: 始终启用(不再依赖release模式)
- Controller Exp: common.GetGinExp包装, 不再直接读context
- UID解析: common.ParseUIDParam统一, follow/admin controller改用

重构:
- router/api.go(198行)拆为7个域文件: auth/settings/posts/comments/reactions/social/studio
- 管理后台站点设置: 单页拆为4个子页(brand/security/registration/content)+子菜单
- 前台用户设置页: 1201行拆为6个独立模板+6个独立JS文件

新增:
- DB健康检测中间件(middleware/db_health.go): 5s ping+降级页面
- 时区配置: config.yaml server.timezone→time.Local初始化
- .gitea/workflows/ci.yml: strict模式CI流水线
2026-06-22 03:06:24 +08:00

56 lines
2.9 KiB
HTML

{{template "admin/layout/base.html" .}}
<div class="page-header">
<h1>站点设置</h1>
<p class="page-desc">注册策略与准则配置</p>
</div>
{{template "admin/site-settings/_menu.html" .}}
<!-- 注册设置 -->
<div class="settings-section">
<div class="section-title">注册设置</div>
<div class="section-body">
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">允许注册</span>
<span class="setting-desc">关闭后,新用户将无法注册</span>
</div>
<label class="toggle-switch">
<input type="checkbox" id="registration-enabled" data-key="registration.enabled">
<span class="toggle-slider"></span>
</label>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">弹窗显示准则</span>
<span class="setting-desc">注册时弹窗展示社区准则(关闭后仅显示复选框)</span>
</div>
<label class="toggle-switch">
<input type="checkbox" id="registration-show-guidelines" data-key="registration.show_guidelines">
<span class="toggle-slider"></span>
</label>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">强制阅读准则</span>
<span class="setting-desc">弹窗模式下要求倒计时+滚动到底部(关闭后弹窗可直接确认)</span>
</div>
<label class="toggle-switch">
<input type="checkbox" id="registration-force-guidelines" data-key="registration.force_guidelines">
<span class="toggle-slider"></span>
</label>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">阅读倒计时</span>
<span class="setting-desc">强制阅读时的倒计时秒数</span>
</div>
<div class="setting-input-wrap">
<input type="number" id="setting-guidelines-timer" class="setting-input" placeholder="60" min="1" style="width:100px" value="{{.GuidelinesTimer}}">
<button class="btn btn-sm btn-primary btn-save" data-key="registration.guidelines_timer" data-input="setting-guidelines-timer">保存</button>
</div>
</div>
</div>
</div>
{{template "admin/layout/footer.html" .}}