目录
四、AOP 类DataScopeAspect 处理注解@DataScope
Ruoyi是一个基于Spring Boot和Vue.js的开源后台管理系统,内置了强大的权限管理系统,而Spring AOP则是Spring框架的一个核心特性,用于处理横切关注点,如权限控制。所以RuoYi-Vue的数据权限控制功能为例,介绍Spring AOP(Aspect Oriented Programming 面向切面编程)部分内容。
一:数据权限展示
进入若依角色管理
在普通角色的操作中点击更多,数据权限
可以对数据权限进行控制。
二、数据权限作用及操作
使用数据权限,我们可以让具有不同权限的用户看到的数据有差别,我们进行如下操作来对比说明。
admin 的角色为超级管理员,超级管理员设置为具有访问全部数据权限
gwz的角色为普通角色,普通角色设置为只有访问本部门数据权限,其所属部门为测试部门
如下:
admin用户
gwz用户
三、数据权限后端代码分析
1、controller层
就是通过处理"/list"路径的GET请求,检查当前用户是否具有执行system:users:list
的权限,并将查询结果封装成 TableDataInfo(
分页查询返回结果类)
对象返回给前端。
2、Service层
3、Mapper层
根据用户角色的权限对数据进行过滤。
四、AOP 类DataScopeAspect 处理注解@DataScope
@DataScope注解
AOP 类DataScopeAspect 处理注解@DataScope
根据当前登录用户的信息,判断是否为超级管理员,如果不是,则调用dataScopeFilter
方法进行数据权限过滤。这样非管理员就会受到限制,管理员可以访问全部数据;
AOP 类DataScopeAspect 对于各种权限最终添加的SQL 语句及作用
此切面在目标方法执行前会拦截,检查用户的角色和数据权限配置,然后根据不同的权限类型生成相应的SQL条件。