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

1.1 KiB
Raw Blame History

数据权限

数据权限指的是不同的用户,通过某一个方法去查询的时候,得到的是不同的数据结果集。常见的数据权限有:

  • 获取全部数据
  • 仅获取本人创建的数据
  • 获取当前用户的部门数据
  • 获取部门级以下部门的数据
  • 获取某个地区的数据
  • 等等

这一些,都是通过当前的用户的信息(部门、角色、权限等),查询时,添加特定的条件。在 MyBatis-Flex 中,我们可以使用自定义数据方言 IDialect 的方式来实现这一种需求。

以下是示例代码:

public class MyPermissionDialect extends CommonsDialectImpl{

    @Override
    public String forSelectByQuery(QueryWrapper queryWrapper) {
        
        //获取当前用户信息,为 queryWrapper 添加额外的条件
        queryWrapper.and("...");
        
        return supper.buildSelectSql(queryWrapper);
    }
}

在项目启动时,通过 DialectFactory 注册 MyPermissionDialect

DialectFactory.registerDialect(DbType.MYSQL, new MyPermissionDialect());