Files
ccdi/docs/plans/backend/2026-07-01-project-manager-role-access-backend-implementation.md

20 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# manager 项目权限后端实施计划
## 目标
新增 `manager` 角色并建立统一项目访问控制:`admin` 保持最高权限,`manager` 可查看全部项目但只能操作本人创建的项目,普通角色只能查看和操作本人创建的项目。
## 实施范围
1. 新增 `ProjectAccessScope``CcdiProjectAccessService`,统一提供项目读权限、操作权限、流水/文件/证据等资源反查项目后的权限校验。
2. 项目列表、历史项目列表、状态统计统一走后端 scope`admin/manager` 查询全部,普通角色限定 `create_by = 当前用户名`
3. `CcdiProjectVO` 返回 `ownedByCurrentUser``canOperate`,供前端展示只读态。
4. 项目详情、结果总览、流水明细、专项排查、关系图谱、资金图谱、证据、上传记录、模型参数等接口在服务调用前执行项目读/写权限校验。
5. 项目更新、删除、归档、重新分析、上传、拉取本行信息、文件删除、参数保存、证据保存、手工资金流保存均执行 `assertCanOperate`
6. 资金图谱手工资金流保持现有全局资金图逻辑,不新增 `project_id`,不按项目过滤手工边;保存时仅用当前项目 ID 做操作权限校验。
7. 新增幂等 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 条件编译通过。