Annotation Interface DataScope


@Target(METHOD) @Retention(RUNTIME) @Documented @Inherited public @interface DataScope
数据权限范围
  • 必需元素概要

    所需元素
    修饰符和类型
    必需的元素
    说明
    需要过滤权限的表的别名,查询的时候需要关联查询,所以这里要指定一个表的别名,例如:要查询用户表就可以用 su 表示
    需要过滤权限的表的关联字段,分两种情况: 1.
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    说明
    boolean
    是否自动把过滤条件添加到 where 语句后面,默认添加到第一个 where 后面
    自定义过滤规则
    判断是否要进行数据权限过滤
    com.baomidou.mybatisplus.annotation.DbType
    数据库类型,目前仅支持 POSTGRE_SQL | MYSQL | ORACLE
    部门 表用来关联权限表的主键字段,例如:id
    部门 表的用于存储所有父级部门的id的字段,例如:pid_all
    部门表 指定部门信息表,这个主要是为了获取上下级关系,例如:sys_dept
    组织机构启用状态,默认启动状态是 1
    boolean
    是否扩展
    扩展数据范围表的关联扩展的部门的 id
    扩展数据范围表的主键(用来关联是哪个部门需要扩展范围)
    扩展数据范围表
    按用户,还是按角色过滤,或者取合集过滤,这里默认按用户过滤
    boolean
    是否包含查询权限子集
    boolean
    是否包含查询权限父级,即,把父级也一起返回
    boolean
    部门表 是否是逻辑删除的
    逻辑删除字段
    一对多的数据权限的关联表用于关联部门 表的字段,例如 sys_user_dept 表里面的 dept_id
    type 为 MULTI 时必填
    一对多的数据权限的关联表用于关联需要过滤表的字段,例如 sys_user_dept 表里面的 user_id
    type 为 MULTI 时必填
    如果是一对多的数据权限,这里需要指定需要过滤的表用于关联权限的关联表名,例如:sys_user_dept ,用来关联用户有多个部门
    type 为 MULTI 时必填
    逻辑删除的未删除状态
    如果查询不到数据权限,或者不存在数据权限关联的时候的处理方式,一般只出现在一对多关联的情况下,比如,可能存在如下的数据关联条件:
    这分数据,即可以是按部门来分配权限,也可以单独指定到某个人,那这样,就有可能部门字段是空的,因为他只单独指定到了用户,可以不指定部门
    默认不允许,也就是必须要存在数据权限的配置才给通过
    角色 code,例如:code
    角色表的主键,用来关联,例如:id
    角色权限表用于关联部门 表的字段名,例如:sys_role_dept 表里面的 dept_id
    角色权限表权限字段,按什么过滤权限,也就是 角色权限表里面的某个字段来关联权限,例如,sys_role_dept 表里面的 role_id,是按用户来关联过滤数据权限
    角色权限表,按角色过滤权限的权限关联表,例如:sys_role_dept
    角色表,因为一个用户可能是有多个角色的,所以,需要按角色 code 的集合来过滤,就得查询角色表,例如:sys_role
    如果是自定义 mapper.xml 写 sql ,这里要加入过滤数据权限条件的 sql 的字段,可以把这个 sql 加入到自定义的 sql where 条件里面,但是,注意,一般是使用一个
    状态字段
    boolean
    是否按状态过滤
    数据权限类型
    用户权限表用于关联部门 表的字段名,例如:sys_user_dept 表里面的 dept_id
    权限字段,按什么过滤权限,也就是 用户权限表里面的某个字段来关联权限,例如,sys_user_dept 表里面的 user_id,是按用户来关联过滤数据权限
    用户权限表,例如,数据权限体系是使用部门,那第,这个表就是用户和部门的关联表,例如:sys_user_dept
  • 元素详细资料

    • alias

      String alias
      需要过滤权限的表的别名,查询的时候需要关联查询,所以这里要指定一个表的别名,例如:要查询用户表就可以用 su 表示
      返回:
      string
    • field

      String field
       需要过滤权限的表的关联字段,分两种情况:
       1. 单权限(一个用户只有一个部门)的时候就是用户表的 dept_id
       2. 多权限(一个用户有多个部门)的时候就是用户和部门关联表的时候用户表用于做关联的字段,例如用户表的 id
       
      返回:
      string
    • userScopeTable

      String userScopeTable
      用户权限表,例如,数据权限体系是使用部门,那第,这个表就是用户和部门的关联表,例如:sys_user_dept
      返回:
      string
      默认值:
      ""
    • userScopeField

      String userScopeField
      权限字段,按什么过滤权限,也就是 用户权限表里面的某个字段来关联权限,例如,sys_user_dept 表里面的 user_id,是按用户来关联过滤数据权限
      返回:
      string
      默认值:
      ""
    • userScopeDeptId

      String userScopeDeptId
      用户权限表用于关联部门 表的字段名,例如:sys_user_dept 表里面的 dept_id
      返回:
      string
      默认值:
      ""
    • roleScopeTable

      String roleScopeTable
      角色权限表,按角色过滤权限的权限关联表,例如:sys_role_dept
      返回:
      string
      默认值:
      ""
    • roleScopeField

      String roleScopeField
      角色权限表权限字段,按什么过滤权限,也就是 角色权限表里面的某个字段来关联权限,例如,sys_role_dept 表里面的 role_id,是按用户来关联过滤数据权限
      返回:
      string
      默认值:
      ""
    • roleScopeDeptId

      String roleScopeDeptId
      角色权限表用于关联部门 表的字段名,例如:sys_role_dept 表里面的 dept_id
      返回:
      string
      默认值:
      ""
    • roleTable

      String roleTable
      角色表,因为一个用户可能是有多个角色的,所以,需要按角色 code 的集合来过滤,就得查询角色表,例如:sys_role
      返回:
      string
      默认值:
      ""
    • roleField

      String roleField
      角色表的主键,用来关联,例如:id
      返回:
      string
      默认值:
      ""
    • roleCode

      String roleCode
      角色 code,例如:code
      返回:
      string
      默认值:
      ""
    • deptTable

      String deptTable
      部门表 指定部门信息表,这个主要是为了获取上下级关系,例如:sys_dept
      返回:
      string
      默认值:
      ""
    • deptId

      String deptId
      部门 表用来关联权限表的主键字段,例如:id
      返回:
      string
      默认值:
      ""
    • deptPidAll

      String deptPidAll
      部门 表的用于存储所有父级部门的id的字段,例如:pid_all
      返回:
      string
      默认值:
      ""
    • multiTable

      String multiTable
      如果是一对多的数据权限,这里需要指定需要过滤的表用于关联权限的关联表名,例如:sys_user_dept ,用来关联用户有多个部门
      type 为 MULTI 时必填
      返回:
      string
      默认值:
      ""
    • multiFiled

      String multiFiled
      一对多的数据权限的关联表用于关联需要过滤表的字段,例如 sys_user_dept 表里面的 user_id
      type 为 MULTI 时必填
      返回:
      string
      默认值:
      ""
    • multiDeptId

      String multiDeptId
      一对多的数据权限的关联表用于关联部门 表的字段,例如 sys_user_dept 表里面的 dept_id
      type 为 MULTI 时必填
      返回:
      string
      默认值:
      ""
    • sqlField

      String sqlField
      如果是自定义 mapper.xml 写 sql ,这里要加入过滤数据权限条件的 sql 的字段,可以把这个 sql 加入到自定义的 sql where 条件里面,但是,注意,一般是使用一个
      <if test="_parameter.containsKey('_data_scope_') and _data_scope_ != null">
       and exists(${_data_scope_})
       </if> 
       
      关联起来
      返回:
      string
      默认值:
      "_data_scope_"
    • filterType

      按用户,还是按角色过滤,或者取合集过滤,这里默认按用户过滤
      返回:
      DataScopeFilterType
      另请参阅:
      默认值:
      USER
    • type

      数据权限类型
      返回:
      DataScopeType
      另请参阅:
      默认值:
      SINGLE
    • logicDelete

      boolean logicDelete
      部门表 是否是逻辑删除的
      返回:
      boolean
      默认值:
      false
    • logicField

      String logicField
      逻辑删除字段
      返回:
      string
      默认值:
      ""
    • notDeletedStatus

      String notDeletedStatus
      逻辑删除的未删除状态
      返回:
      string
      默认值:
      ""
    • dbtype

      com.baomidou.mybatisplus.annotation.DbType dbtype
      数据库类型,目前仅支持 POSTGRE_SQL | MYSQL | ORACLE
      返回:
      DbType
      默认值:
      POSTGRE_SQL
    • includeChildren

      boolean includeChildren
      是否包含查询权限子集
      返回:
      boolean
      默认值:
      true
    • includeParents

      boolean includeParents
      是否包含查询权限父级,即,把父级也一起返回
      返回:
      boolean
      默认值:
      false
    • dataScopeCondition

      Class<? extends DataScopeCondition> dataScopeCondition
      判断是否要进行数据权限过滤
      返回:
      boolean
      默认值:
      io.github.mangocrisp.spring.taybct.tool.core.config.DefaultDataScopeCondition.class
    • custom

      Class<? extends DataScopeCustom> custom
      自定义过滤规则
      返回:
      string
      默认值:
      io.github.mangocrisp.spring.taybct.tool.core.config.DefaultDataScopeCustom.class
    • notExistDealType

      DataScopeGetNotDealType notExistDealType
      如果查询不到数据权限,或者不存在数据权限关联的时候的处理方式,一般只出现在一对多关联的情况下,比如,可能存在如下的数据关联条件:
      这分数据,即可以是按部门来分配权限,也可以单独指定到某个人,那这样,就有可能部门字段是空的,因为他只单独指定到了用户,可以不指定部门
      默认不允许,也就是必须要存在数据权限的配置才给通过
      返回:
      DataScopeGetNotDealType
      默认值:
      FORBID
    • auto

      boolean auto
      是否自动把过滤条件添加到 where 语句后面,默认添加到第一个 where 后面
      返回:
      boolean
      默认值:
      true
    • extensible

      boolean extensible
      是否扩展
      返回:
      boolean
      默认值:
      false
    • extensionScopeTable

      String extensionScopeTable
      扩展数据范围表
      返回:
      string
      默认值:
      ""
    • extensionScopeField

      String extensionScopeField
      扩展数据范围表的主键(用来关联是哪个部门需要扩展范围)
      返回:
      string
      默认值:
      ""
    • extensionScopeDeptId

      String extensionScopeDeptId
      扩展数据范围表的关联扩展的部门的 id
      返回:
      string
      默认值:
      ""
    • statusFilter

      boolean statusFilter
      是否按状态过滤
      返回:
      boolean
      默认值:
      false
    • statusField

      String statusField
      状态字段
      返回:
      string
      默认值:
      ""
    • enableStatus

      String enableStatus
      组织机构启用状态,默认启动状态是 1
      返回:
      string
      默认值:
      "1"