3.0 KiB
3.0 KiB
流程列表角色数据权限实施记录
修改日期
2026-05-12
需求范围
- 仅控制
GET /loanPricing/workflow/list流程列表接口。 - 超级管理员
user_id=1、启用角色名为“管理员”或角色标识为headAdmin的用户可查看全部流程。 - 非管理员用户只能查看
loan_pricing_workflow.create_by精确等于当前登录人昵称-柜员号的流程。 - 列表页“创建者”查询参数继续保留,但只按
create_by中的柜员号部分进行模糊匹配。
修改内容
LoanPricingWorkflow增加非表字段dataScopeCreateBy,专用于后端内部数据权限精确过滤。LoanPricingWorkflowServiceImpl.selectLoanPricingPage增加流程列表数据权限裁剪:- 管理员不写入
dataScopeCreateBy。 - 非管理员写入
dataScopeCreateBy = nickName + "-" + username。 - 前端传入
createBy时仍保留原查询参数,但不能扩大非管理员可见范围。
- 管理员不写入
LoanPricingWorkflowMapper.xml增加lpw.create_by = #{query.dataScopeCreateBy}精确权限条件。LoanPricingWorkflowMapper.xml将createBy查询调整为SUBSTRING_INDEX(lpw.create_by, '-', -1) LIKE ...,即只按柜员号模糊匹配。- 补充
LoanPricingWorkflowServiceImplTest和LoanPricingWorkflowMapperXmlTest,覆盖管理员、业务管理员、客户经理、越权创建者查询参数和 XML 条件。
验证记录
- 单元测试通过:
mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingWorkflowServiceImplTest,LoanPricingWorkflowMapperXmlTest -Dsurefire.failIfNoSpecifiedTests=false test
- 后端打包通过:
mvn -pl ruoyi-admin -am clean package -DskipTests
-
API 验证通过:
admin/admin123查询流程列表返回全量数据,包含测试行和若依-admin历史行。8929999/123456业务管理员查询流程列表返回全量数据。8920001/123456客户经理查询流程列表只返回本人创建的测试行。- 客户经理按
createBy=8920001查询可返回本人测试行。 - 客户经理按昵称
createBy=测试客户经理查询返回 0 条。 - 客户经理按其他柜员号
createBy=admin查询返回 0 条。
-
browser-use 真实页面验证通过:
- 管理员登录真实流程列表页,页面显示
共 40 条,可见本人测试行和若依-admin历史行。 - 客户经理登录真实流程列表页,页面只显示本人创建的测试行。
- 客户经理在“创建者”输入
admin后页面显示暂无数据。 - 客户经理在“创建者”输入
8920001后页面重新显示本人测试行。
- 管理员登录真实流程列表页,页面显示
验证数据与清理
- 因当前开发库创建流程接口依赖的模型输出表缺少
coupon_rate字段,无法通过页面新增生成验证流程。 - 本次验证使用一条临时 SQL 测试数据:
serial_num = ROLE_SCOPE_20260512_001,create_by = 测试客户经理-8920001。 - 验证结束后已删除该临时数据,回查剩余数量为 0。