## 数据权限
Pre的数据范围控制是指,对拥有相同角色的用户,根据部门的不同进行相应的数据筛选,如果部门不相同,那么有可能展示出的具体数据是不一致的.所以说Pre对数据范围控制是以部门id为单位来标识的
#### 如何增加数据范围拦截呢?
只需在相关的mapper接口的参数中增加一个DataScope对象即可,DataScope中有两个字段,scopeName用来标识sql语句中部门id的字段名称,例如deptiid或者id,另一个字段deptIds就是具体需要过滤的部门id的集合.拦截器原理如下:拦截mapper中包含DataScope对象的方法,获取其原始sql,并做一个包装限制部门id在deptIds范围内的数据进行展示.
#### 角色数据权限
系统提供了三种数据权限控制
- 全部数据权限 可以看到所有部门数据
- 本级数据权限 限制只能看到本部门数据
- 本级以及子级数据权限 限制只能看到本部门以及子部门数据
- 自定义数据权限 可根据实际需要选择部门控制数据权限
![](https://img.kancloud.cn/6a/5b/6a5b4582bfb39aea646248864d74b018_2582x1544.png)
#### 如何使用?
在dao层操作数据库接口处加上` DataScope dataScope`即可
```
/**
* 分页查询用户信息(含角色)
*
* @param page 分页
* @param userDTO 查询参数
* @param dataScope
* @return list
*/
IPage<SysUser> getUserVosPage(Page page, @Param("query") UserDTO userDTO, DataScope dataScope);
```
这样就可以进行数据权限查询
- 快速了解
- 1. 项目简介
- 2. 系统核心业务架构
- 3. 系统技术架构
- 使用教程
- 导入项目
- 1. 环境准备
- 2. 后端项目
- 3. 前端项目
- 开发文档
- 后端开发文档
- 1. 项目目录结构
- 2. 如何二次开发
- 3. 数据权限实现
- 4. 如何控制权限
- 5. 操作日志介绍
- 6. 如何获取当前登录用户信息
- 前端开发文档
- 1. 项目目录结构
- 2. 如何二次开发
- 更新日志
- 第三方登录说明
- 搭建教程
- 第一章.基础框架搭建
- 1.1.整体架构预览
- 1.2.基础架构搭建
- 1.3.配置文件
- 第二章.架构完善
- 2.1.搭建upms模块
- 2.2.参数统一化
- 2.3.异常处理
- 第三章.完善登录流程
- 3.1.表结构设计
- 3.2.引入安全框架
- 3.3.引入JWT
- 3.4.完善登录
- 3.5.演示登录
- 3.6.整合图形验证码
- 7.7.完善验证码登录
- 第四章. 前端系统搭建
- 4.1.前端基础架构搭建
- 4.2.封装Axios