数据权限
大约 1 分钟快速上手项目简介项目介绍
本教程将指导你如何使用数据权限功能。
数据权限设置
- 角色管理中的数据权限
可以看到数据权限一共有四种类型,分别是全部数据、部门及子部门数据、本部门数据和本人数据。
- 代码使用方式
在mapper接口中使用注解@DataPermission
,可以实现数据权限过滤。
import com.youlai.boot.common.annotation.DataPermission;
@Mapper
public interface DemoMapper extends BaseMapper<Demo> {
@DataPermission
List<Demo> queryList();
}
- 注解参数说明
deptAlias
:部门表别名,默认为``deptIdColumnName
:部门ID字段名,默认为dept_id
userAlias
:用户表别名,默认为``userIdColumnName
:用户ID字段名,默认为create_by
使用示例:
SELECT * FROM demo d LEFT JOIN other on d.id = o.demo_id
如果在这个查询中加入数据权限过滤,并且demo表中有dept_id字段和create_by字段,那么可以这样写
import com.youlai.boot.common.annotation.DataPermission;
@Mapper
public interface DemoMapper extends BaseMapper<Demo> {
@DataPermission(deptAlias = "d", deptIdColumnName = "dept_id",
userAlias = "d", userIdColumnName = "create_by")
List<Demo> queryList();
}
其中deptIdColumnName
和userIdColumnName
是可以不写,因为demo表中的字段和默认的一样,所以可以省略。
- Mybatisplus中的使用方式
如果想对Mybaitsplus中的方法增加数据权限,可以参考DeptMapper中的selectList方法
@Mapper
public interface DeptMapper extends BaseMapper<Dept> {
@DataPermission(deptIdColumnName = "id")
@Override
List<Dept> selectList(@Param(Constants.WRAPPER) Wrapper<Dept> queryWrapper);
}