# manager 项目权限实施记录

## 修改内容

- 新增后端项目访问控制服务，统一判断 `admin / manager / 创建者` 的项目读权限，以及 `admin / 创建者` 的项目操作权限。
- 项目列表、历史项目、状态统计按当前用户角色自动限制范围，并在项目 VO 中返回 `ownedByCurrentUser` 和 `canOperate`。
- 项目列表、项目详情、流水明细、上传记录、证据读取等基础读接口不再依赖 `ccdi:project:list/query` 菜单权限，避免普通角色登录后被菜单权限提前拦截。
- 为项目详情、结果总览、流水明细、专项排查、关系图谱、资金图谱、上传、参数、证据、重新分析等接口补充项目级读写权限校验。
- 新增 `manager` 角色幂等 SQL，按 `role_key='manager'` 维护角色并授予项目相关菜单权限，不绑定具体用户。
- 前端项目列表、详情页、上传、参数、证据、项目分析图谱按 `canOperate` 展示只读态，并在写入方法入口拦截。

## 影响范围

- `manager` 可查看所有项目，操作他人项目会被后端拒绝；操作本人项目仍受菜单权限控制。
- 普通角色可进入项目列表并查看本人创建的项目，直接传入他人项目或资源 ID 会被拒绝；写操作仍受菜单权限和项目归属共同约束。
- 资金图谱手工资金流保持全局资金图逻辑，不新增项目归属字段，也不按项目过滤手工边；保存入口只使用当前项目 ID 做操作权限校验。

## 验证记录

- 后端计划执行：`mvn -pl ccdi-project -am compile -DskipTests`。
- 前端计划执行：`source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use && npm run build:prod`。
- 浏览器计划验证：admin、manager、普通角色的列表范围、详情只读态、按钮显隐和接口拒绝行为。
