数据权限配置与开发

数据权限

在实际开发中,需要设置用户只能查看哪些部门的数据,这种情况一般称为数据权限。例如对于销售,财务的数据,它们是非常敏感的,因此要求对数据权限进行控制,对于基于集团性的应用系统而言,就更多需要控制好各自公司的数据了。如设置只能看本公司、或者本部门的数据,对于特殊的领导,可能需要跨部门的数据,因此程序不能硬编码那个领导该访问哪些数据,需要进行后台的权限和数据权限的控制

支持参数如下:

参数 类型 默认值 描述
deptAlias String 空 部门表的别名
userAlias String 空 用户表的别名

若依的<-- 数据范围过滤 -->
${params.dataScope}
${params.dataScope}的意思就是入参参数.dataScope属性,即 SysDept对象.dataScope属性

下面我们通过几个简单的例子来说明怎么进行数据权限的空值

1、在(系统管理-角色管理)设置需要数据权限的角色目前支持以下几种权限

全部数据权限
自定数据权限
部门数据权限
部门及以下数据权限
仅本人数据权限2、在需要数据权限控制方法上添加@DataScope注解,其中d和u用来表示表的别名

// 部门数据权限注解
@DataScope(deptAlias = "u")
// 部门及用户权限注解
@DataScope(deptAlias = "d", userAlias = "u")

3、在mybatis查询底部标签添加数据范围过滤

未过滤的情况。

select u.user_id, u.dept_id, u.login_name, u.user_name, u.email

, u.phonenumber, u.password, u.sex, u.avatar, u.salt
, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by
, u.create_time, u.remark, d.dept_name

from sys_user u

left join sys_dept d on u.dept_id = d.dept_id

where u.del_flag = '0'

过滤后的情况 我们可以看到区别。

select u.user_id, u.dept_id, u.login_name, u.user_name, u.email

, u.phonenumber, u.password, u.sex, u.avatar, u.salt
, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by
, u.create_time, u.remark, d.dept_name

from sys_user u

left join sys_dept d on u.dept_id = d.dept_id

where u.del_flag = '0'

and u.dept_id in (
    select dept_id
    from sys_role_dept
    where role_id = 2
)

逻辑实现代码 com.ruoyi.framework.aspectj.DataScopeAspect

标签: none

相关阅读

  • 测试信息
  • 拼多多2023年度财报分析
  • 2023年最后一个工作日
  • 2023山东社会责任企业(企业家)” 推选活动结果
  • 测试信息
  • 测试信息
  • 测试信息