整理项目文档并优化权限监控与安装脚本

This commit is contained in:
Cheng Zhou
2026-05-21 11:39:00 +08:00
parent 6d682103f3
commit 9305ced664
31 changed files with 508 additions and 4083 deletions
@@ -0,0 +1,35 @@
# 模块级权限迁移状态
状态: `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` 无仍需迁移的有效配置。
- 已定义删除迁移、回滚迁移和发布窗口。
- 权限系统测试覆盖接口级权限矩阵、前置权限、权限模板和监控接口。
## 历史结论演进
- 早期评估认为模块级权限仍需保留,用于兼容旧接口和简化前端配置。
- 迁移依赖分析认为模块级权限暂不可立即移除,需要先完成接口级权限覆盖。
- 后续移除评估认为运行时代码完成迁移后,可以在观察期和数据检查后移除遗留表结构。
上述细节已作为历史报告清理出工作树。当前执行依据以本文档为准。