mybatis-flex/docs/zh/core/data-permission.md
2023-05-17 17:28:10 +08:00

34 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据权限
数据权限指的是不同的用户,通过某一个方法去查询的时候,得到的是不同的数据结果集。常见的数据权限有:
- 获取全部数据
- 仅获取本人创建的数据
- 获取当前用户的部门数据
- 获取部门级以下部门的数据
- 获取某个地区的数据
- 等等
这一些,都是通过当前的用户的信息(部门、角色、权限等),查询时,添加特定的条件。在 MyBatis-Flex 中,我们可以使用自定义数据方言 `IDialect` 的方式来实现这一种需求。
以下是示例代码:
```java
public class MyPermissionDialect extends CommonsDialectImpl{
@Override
public String forSelectByQuery(QueryWrapper queryWrapper) {
//获取当前用户信息,为 queryWrapper 添加额外的条件
queryWrapper.and("...");
return supper.buildSelectSql(queryWrapper);
}
}
```
在项目启动时,通过 `DialectFactory` 注册 `MyPermissionDialect`
```java
DialectFactory.registerDialect(DbType.MYSQL, new MyPermissionDialect());
```