1.6 KiB
1.6 KiB
manager 项目权限后端实施计划
目标
新增 manager 角色并建立统一项目访问控制:admin 保持最高权限,manager 可查看全部项目但只能操作本人创建的项目,普通角色只能查看和操作本人创建的项目。
实施范围
- 新增
ProjectAccessScope和CcdiProjectAccessService,统一提供项目读权限、操作权限、流水/文件/证据等资源反查项目后的权限校验。 - 项目列表、历史项目列表、状态统计统一走后端 scope:
admin/manager查询全部,普通角色限定create_by = 当前用户名。 CcdiProjectVO返回ownedByCurrentUser、canOperate,供前端展示只读态。- 项目详情、结果总览、流水明细、专项排查、关系图谱、资金图谱、证据、上传记录、模型参数等接口在服务调用前执行项目读/写权限校验。
- 项目更新、删除、归档、重新分析、上传、拉取本行信息、文件删除、参数保存、证据保存、手工资金流保存均执行
assertCanOperate。 - 资金图谱手工资金流保持现有全局资金图逻辑,不新增
project_id,不按项目过滤手工边;保存时仅用当前项目 ID 做操作权限校验。 - 新增幂等 SQL
sql/migration/2026-07-01-add-manager-role-project-scope.sql,按role_key='manager'新增/更新角色并授予项目菜单权限,不自动绑定用户。
验证
执行 mvn -pl ccdi-project -am compile -DskipTests,重点验证权限服务、Controller 注入、Mapper 参数和 MyBatis XML 条件编译通过。