新增项目管理员角色权限控制
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# 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 条件编译通过。
|
||||
@@ -0,0 +1,18 @@
|
||||
# manager 项目权限前端实施计划
|
||||
|
||||
## 目标
|
||||
|
||||
前端根据后端返回的 `canOperate` 呈现项目只读体验:他人项目可查看结果和明细,不展示或禁用上传、参数配置、重新分析、归档、证据确认、手工资金流保存等写入入口。
|
||||
|
||||
## 实施范围
|
||||
|
||||
1. 项目列表使用 `canOperate` 控制按钮:他人项目仅显示查看入口,重新分析和归档仅在 `canOperate=true` 且状态允许时展示。
|
||||
2. 他人项目从列表进入详情时默认打开 `overview`;详情页路由指向上传或参数配置时自动切换到结果总览。
|
||||
3. 详情页将 `canOperate` 传给上传、参数配置、结果总览、证据确认、项目分析图谱等子组件。
|
||||
4. 上传数据、拉取本行信息、征信导入、文件删除、参数保存、证据确认、手工资金流新增保存均在前端方法入口做只读拦截。
|
||||
5. 关系图谱、资金图谱、资金边流水明细请求携带当前 `projectId` 作为后端读权限校验上下文;资金图谱手工资金流数据仍保持全局图谱逻辑,不按项目过滤。
|
||||
6. 新建项目、历史导入和快捷创建入口继续按 `ccdi:project:add` 菜单权限展示。
|
||||
|
||||
## 验证
|
||||
|
||||
执行 `source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use && npm run build:prod`,并通过真实浏览器检查列表按钮、详情只读页签、上传/参数/证据/图谱写入入口和查询接口行为。
|
||||
Reference in New Issue
Block a user