# 模块级权限迁移状态 状态: `active` 适用范围: `permissions` 最后更新: `2026-05-21` ## 当前结论 模块级权限不再作为当前业务权限控制的主路径。当前运行时代码以接口级权限为主,`backend/app` 和 `backend/tests` 中未检出 `role_has_project_permission`、`require_study_permission` 或 `StudyRolePermission` 的直接使用。 `study_role_permissions` 仍出现在历史 Alembic 迁移中。这表示数据库结构存在历史来源,不等同于当前运行时代码仍依赖模块级权限。 ## 当前约束 - 新功能不得新增模块级权限调用。 - 新权限控制应接入接口级权限配置与前置权限机制。 - 删除 `study_role_permissions` 表前,必须先完成数据库数据检查、回滚方案和迁移脚本评审。 - 历史评估文档仅用于追溯,不作为当前执行依据。 ## 复评条件 满足以下条件后,才可以进入表结构移除设计: - `rg -n "role_has_project_permission|require_study_permission|StudyRolePermission" backend/app backend/tests` 无运行时代码或测试依赖。 - 生产数据确认 `study_role_permissions` 无仍需迁移的有效配置。 - 已定义删除迁移、回滚迁移和发布窗口。 - 权限系统测试覆盖接口级权限矩阵、前置权限、权限模板和监控接口。 ## 历史结论演进 - 早期评估认为模块级权限仍需保留,用于兼容旧接口和简化前端配置。 - 迁移依赖分析认为模块级权限暂不可立即移除,需要先完成接口级权限覆盖。 - 后续移除评估认为运行时代码完成迁移后,可以在观察期和数据检查后移除遗留表结构。 上述细节已作为历史报告清理出工作树。当前执行依据以本文档为准。