36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# 模块级权限迁移状态
|
|
|
|
状态: `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` 无仍需迁移的有效配置。
|
|
- 已定义删除迁移、回滚迁移和发布窗口。
|
|
- 权限系统测试覆盖接口级权限矩阵、前置权限、权限模板和监控接口。
|
|
|
|
## 历史结论演进
|
|
|
|
- 早期评估认为模块级权限仍需保留,用于兼容旧接口和简化前端配置。
|
|
- 迁移依赖分析认为模块级权限暂不可立即移除,需要先完成接口级权限覆盖。
|
|
- 后续移除评估认为运行时代码完成迁移后,可以在观察期和数据检查后移除遗留表结构。
|
|
|
|
上述细节已作为历史报告清理出工作树。当前执行依据以本文档为准。
|