数据权限
本文档介绍如何使用数据权限功能。
什么是数据权限?
数据权限是指根据用户的角色和部门,限制用户只能查看和操作特定范围的数据。
使用方法
1. 添加注解
在需要数据权限过滤的方法上添加 @DataScope 注解:
java
@DataScope(deptAlias = "d", userAlias = "u")
@GetMapping("/list")
public R<List<User>> list() {
return R.ok(userService.list());
}2. SQL 配置
在 Mapper XML 中使用数据权限占位符:
xml
<select id="selectUserList" resultType="User">
SELECT u.* FROM sys_user u
LEFT JOIN sys_dept d ON u.dept_id = d.dept_id
WHERE u.del_flag = '0'
${params.dataScope}
</select>权限范围
- 全部数据权限:可以查看所有数据
- 自定义数据权限:可以查看指定部门的数据
- 本部门数据权限:只能查看本部门的数据
- 本部门及以下数据权限:可以查看本部门及下级部门的数据
- 仅本人数据权限:只能查看自己的数据
配置示例
java
@Service
public class UserServiceImpl implements IUserService {
@DataScope(deptAlias = "d", userAlias = "u")
@Override
public List<User> selectUserList(User user) {
return userMapper.selectUserList(user);
}
}注意事项
- 确保 SQL 中包含部门表和用户表的关联
- 使用
${params.dataScope}占位符 - 注解参数要与 SQL 中的表别名一致