数据权限注解不起作用@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)

Blade 未结 1 1519
bufeng
bufeng 剑圣 2021-01-20 18:21

一、该问题的重现步骤是什么?

1. 在org.springblade.desk.mapper.NoticeMapper 里创建selectNoticePage1方法,同时使用注解数据权限进行查询本部门及下级所有通知数据

@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
List<NoticeVO> selectNoticePage1(IPage page, NoticeVO notice);

2. 在对应mapper.xml 中写单表查询SQL语句

 <select id="selectNoticePage1" resultMap="noticeVOResultMap">
   SELECT
   n.*
   FROM
   blade_notice n
</select>

3. org.springblade.desk.service.INoticeServiceorg.springblade.desk.service.impl.NoticeServiceImpl创建对应service方法,并在org.springblade.desk.controller.NoticeController 进行接口调用

image.png 

image.png 

image.png 

4. 修改数据库数据将create_dept 数据修改成要登录的用户所在组织

image.png 

5. 用户登录,查询消息通知列表,看配置数据权限mapper 方法对应SQL打印语句

image.png 

二、你期待的结果是什么?实际看到的又是什么?

    期待是查询出一条与本用户相关的数据,实际上查出的是全部数据

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX 商业版本 master分支代码,在Windows 10 操作系统上

四、请提供详细的错误堆栈信息,这很重要。

未报错,注解未生效

五、若有更多详细信息,请在下面提供。


1条回答
  • 2021-01-20 22:11

    你用的是超级管理员么?用其他的角色帐号测试,超管是不受数据权限插件约束的

    作者追问:2021-01-21 09:11

    不是使用超管账号,使用的是常州刀锋下的manager 账号

    回答: 2021-01-21 13:26

    你精简一下代码,弄一个最简单的demo工程,然后传到帖子里,我下载了调试看看

    作者追问:2021-01-21 14:15

    您好,我多次尝试后,发现注解可以用了,现在有个疑问想咨询下,如果mapper 文件中没写任何方法,在查询的时候只用自带的列表查询或者分页查询

    noticeService.page();或者是baseMapper.selectList();

    数据权限注解应该怎么使用?mapper文件如下图

    image.png

    0 讨论(0)
提交回复