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

23 lines
1.8 KiB
Markdown
Raw Normal View History

# 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、普通角色的列表范围、详情只读态、按钮显隐和接口拒绝行为。