更新日志
ytdevblog 2026-08

后台 RBAC:权限码、鉴权内核与升级兼容

工作室多产品并行时,不能再让任意后台账号改站点配置、全量重建或写全部 docbase/。优天日志系统在本轮引入 RBAC 权限组 + 项目范围,仍不开放前台注册与个人中心。

Added

重点

  • 稳定权限码目录域.动作):站点域(设置/主题/用户/权限组等)与项目域(重建、评论、docbase 读写删等)分列;代码内常量为真相源
  • 统一鉴权Can / CanProject / AccessibleProjectIDs;默认拒绝;super_admin 短路;禁用账号视为未登录
  • 双层模型:权限组决定「能做什么」;项目成员表决定「在哪些项目上做」(具备 projects.scope_all 时跳过成员表)
  • 种子系统组super_admin / site_admin / content_editor / project_member
  • Schema 自动迁移dv_rolesdv_role_permissionsdv_admin_rolesdv_project_members;扩展 dv_adminsdisplay_name / status / last_login_at
  • 既有 /api/admin/* 与后台页挂 requirePerm / 项目域检查

细节

  • 有效权限 = 用户所绑各组权限 并集;短缓存按 admin_id,写操作后失效
  • 升级:无人绑超管时,为无角色的启用管理员补绑 super_admin,行为与升级前一致
  • 新装:首个管理员绑超管并种子四组

Security

  • 仅隐藏菜单不可绕过:直接打 API 仍返回 403;未登录/禁用为 401
  • 项目列表与写操作带范围过滤,降低改 project_id 的 IDOR 风险
  • 路径守卫仍约束 docbase;权限是额外一层,不改变「文件为源」

Notes

  • 需求基线:docs/PRD-后台权限与用户管理-zh.md
  • 非目标:前台 OAuth/个人中心、多租户、LDAP/SSO、按单篇日志的 ABAC(Post-MVP)
浏览 (0)

评论

还没有评论,来抢沙发吧