|
|
d4a833f149
|
fix(admin): security 页 password.strength 下拉未从 API 恢复当前值
|
2026-06-30 19:08:11 +08:00 |
|
|
|
3f4d827926
|
fix(admin): 注册设置 toggle 读错数据源 — 从 audit 读 registration.* 导致状态丢失
|
2026-06-30 19:06:37 +08:00 |
|
|
|
20067f7640
|
fix(admin): 修复多页面设置加载失败 — renderOtherSettings 空指针崩溃
CI / Lint + Build (push) Has been cancelled
根因:site-settings.js 的 renderOtherSettings() 无条件访问
#general-settings 元素,但 brand/security/registration 三个模板
无此容器,导致 TypeError 被 catch 吞掉 → '加载设置失败'。
额外修复:
- footer.html: ExtraJS 添加 ?v= 缓存版本哈希
- site-settings.js: API 失败时显式展示服务端错误消息(不再静默 return)
- site_settings.go: Set() 改用 UPSERT(clause.OnConflict),
修复 GORM Save() 对不存在 key 首次保存时返回 ErrRecordNotFound
|
2026-06-30 18:56:42 +08:00 |
|
|
|
9a496d3055
|
feat: 密码强度多级校验 — low/medium/high/very_high
- site_settings 新增 password.strength 配置项
- 四级:low(len>=8) / medium(两类) / high(三类+无连续) / very_high(四类+无连续)
- 连续字符检查:重复/升序/降序/键盘水平/键盘垂直序列
- 注册和改密接口统一读取配置
- 前端 register.js 动态校验 + 管理后台安全设置区
|
2026-06-22 00:54:21 +08:00 |
|
|
|
72c08f3689
|
feat: 社区准则改为数据库存储
- AuthController 注入 SiteSettings 依赖,RegisterPage 优先从 DB 读取准则
- DB 中 site.guidelines 为空时 fallback 到静态 guidelines.html 文件
- 管理后台站点设置页新增「内容管理」分区,textarea 编辑社区准则
- 添加准则编辑区垂直布局样式
|
2026-06-02 20:17:23 +08:00 |
|
|
|
1b4a74c23d
|
fix: 维护开关初始状态显示与实际不符
- maintenance.enabled 默认 false,但 JS 用 registration 同逻辑导致首次显示为 ON
- 分离 maintenance 判断:仅当保存过 true 时才显示 ON
- registration 保持原逻辑(默认 true,仅当 !== false 时 ON)
|
2026-05-30 20:58:05 +08:00 |
|
|
|
6229c81f6e
|
feat: 新增维护模式 + 修复注册关闭页面标题显示问题
- 修复注册关闭时标题“创建账号”和副标题仍显示的问题,三态互斥(维护中 > 关闭注册 > 正常)
- 新增 maintenance.enabled 站点设置,默认关闭,仅 Owner 可见可调节
- 维护中间件:全局拦截,维护期间仅站长可访问,白名单放行登录相关路径
- 登录服务:维护期间仅 Owner 角色可登录,Register 优先检查维护状态
- Nav 模板新增维护通知条(黄色横幅)
- 管理后台站点设置新增“启用维护模式”开关
- BuildPageData 自动注入 IsMaintenance 到所有页面模板
|
2026-05-30 20:54:23 +08:00 |
|
|
|
d29d388092
|
docs: 新增站点设置管理文档,移除 JS 死代码,同步 config.yaml 注释
- 新增 docs/site-settings.md:站点设置全量文档(可配置项/架构/权限/API)
- config.yaml 补充 site.* / registration.* 运行时配置说明
- site-settings.js 移除已废弃的 site.brand 过滤项
|
2026-05-27 15:52:56 +08:00 |
|
|
|
0b948cf70f
|
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 即时生效
|
2026-05-27 15:12:28 +08:00 |
|
|
|
7bc2dbd970
|
refactor: 拆分 middleware/router 为单一职责文件,新增站点设置管理页面
middleware:
- 拆分 auth.go → auth.go + auth_token.go + auth_parser.go + auth_admin.go
- 拆分 csrf.go → csrf.go + csrf_token.go
- 拆分 ratelimit.go → ratelimit.go + ratelimit_core.go + ratelimit_cleanup.go
- 修复 import 未使用/缺失问题
router:
- 拆分 router.go → admin.go + api.go + frontend.go + deps_core.go + deps_extra.go
feat(admin): 站点设置管理页面
- 新增 SSR 页面 /admin/site-settings(仅 Owner)
- 审核开关 Toggle 即时保存
- 通用设置展示
- 侧边栏新增站点设置入口
- 注册 UpdateBoolSetting/GetBoolSetting API 路由
|
2026-05-27 15:03:04 +08:00 |
|