update docs

This commit is contained in:
开源海哥 2023-05-17 17:28:10 +08:00
parent 8a33c2da1f
commit b46963e55f
2 changed files with 35 additions and 0 deletions

View File

@ -79,6 +79,7 @@ export default defineConfig({
{text: 'SQL 打印', link: '/zh/core/sql-print'},
{text: '多数据源', link: '/zh/core/multi-datasource'},
{text: '事务管理', link: '/zh/core/tx'},
{text: '数据权限', link: '/zh/core/data-permission'},
{text: '字段权限', link: '/zh/core/columns-permission'},
{text: '字段加密', link: '/zh/core/columns-encrypt'},
{text: '字典回写', link: '/zh/core/columns-dict'},

View File

@ -0,0 +1,34 @@
# 数据权限
数据权限指的是不同的用户,通过某一个方法去查询的时候,得到的是不同的数据结果集。常见的数据权限有:
- 获取全部数据
- 仅获取本人创建的数据
- 获取当前用户的部门数据
- 获取部门级以下部门的数据
- 获取某个地区的数据
- 等等
这一些,都是通过当前的用户的信息(部门、角色、权限等),查询时,添加特定的条件。在 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());
```