一、该问题的重现步骤是什么?
1. 新增租户、机构、用户
2. 对新增的菜单增加数据权限-本人可见
3.设置新增租户对应的角色,选择本人可见的数据权限
4、通过访问发现控制台访问该菜单没有本人数据权限的拼接sql(未生效)
5、然后调整数据权限为机构发现sql拼接有对应创建人部门对应的ID信息,结果可用(生效)
二、你期待的结果是什么?实际看到的又是什么?
期待结果:查询list的sql中拼接本人可见对应当前用户登录的userId
实际看到:没有拼接用户查询的条件
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
blade2.5.0
window10
四、请提供详细的错误堆栈信息,这很重要。
打印的sql中最后没有拼接数据权限的(未生效),控制台打印的sql如下:
更改角色对应的数据权限如下可见有数据权限生效:
五、若有更多详细信息,请在下面提供。
确认一下,mapper地址是否配置正确,是mybatis-plus默认的selectPage还是你自己定义的例如selectOrderPage,因为我看你打印的sql有left join,作为mybatis-plus默认的selectPage是不会有的
变更类名:org.springblade.order.mapper.OrderMapper.selectOrderPage
o.s.o.m.OrderMapper.selectOrderPage : ==> Preparing: SELECT a.`id`, a.`tenant_id`, a.`order_no`, a.`product_id`, a.`warrant_no`, a.`investor`, a.`investor_amount`, a.`investor_term`, a.`order_rate`, a.`discount_rate`, a.`sign_date`, a.`effective_date`, a.`user_id`, a.`payment_type`, a.`audit_status`, a.`review_status`, a.`data_source`, a.`data_id`, a.`is_online`, a.`order_create_status`, a.`entrust_create_status`, a.`is_payee`, a.`video_status`, a.`is_transfer_status`, a.`create_user`, a.`create_dept`, a.`create_time`, a.`update_user`, a.`update_time`, a.`status`, a.`is_deleted`, a.`company_id`, a.`dept_id`, a.`remarks` FROM tb_order a LEFT JOIN tb_product p ON p.id = a.product_id WHERE a.is_deleted = 0 ORDER BY a.create_time DESC
我也遇到了,清空redis缓存就好了,希望作者优化一下代码,新增或是删除数据权限规则的时候把缓存也清一下,我用的是2.6.0版本
配置的多个数据权限,只会有一个数据权限生效吗
扫一扫访问 Blade技术社区 移动端