Files
ctms/docs/audits/module-level-permissions-transition.md

1.7 KiB

模块级权限迁移状态

状态: active 适用范围: permissions 最后更新: 2026-05-21

当前结论

模块级权限不再作为当前业务权限控制的主路径。当前运行时代码以接口级权限为主,backend/appbackend/tests 中未检出 role_has_project_permissionrequire_study_permissionStudyRolePermission 的直接使用。

study_role_permissions 仍出现在历史 Alembic 迁移中。这表示数据库结构存在历史来源,不等同于当前运行时代码仍依赖模块级权限。

当前约束

  • 新功能不得新增模块级权限调用。
  • 新权限控制应接入接口级权限配置与前置权限机制。
  • 删除 study_role_permissions 表前,必须先完成数据库数据检查、回滚方案和迁移脚本评审。
  • 历史评估文档仅用于追溯,不作为当前执行依据。

复评条件

满足以下条件后,才可以进入表结构移除设计:

  • rg -n "role_has_project_permission|require_study_permission|StudyRolePermission" backend/app backend/tests 无运行时代码或测试依赖。
  • 生产数据确认 study_role_permissions 无仍需迁移的有效配置。
  • 已定义删除迁移、回滚迁移和发布窗口。
  • 权限系统测试覆盖接口级权限矩阵、前置权限、权限模板和监控接口。

历史结论演进

  • 早期评估认为模块级权限仍需保留,用于兼容旧接口和简化前端配置。
  • 迁移依赖分析认为模块级权限暂不可立即移除,需要先完成接口级权限覆盖。
  • 后续移除评估认为运行时代码完成迁移后,可以在观察期和数据检查后移除遗留表结构。

上述细节已作为历史报告清理出工作树。当前执行依据以本文档为准。