# 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 条件编译通过。