数据权限规则

一条数据权限规则由0或1个条件表达式 + 0或1个where表达式组成,多条数据权限规则组成一个数据权限规则组。

下面通过示例来说明如何定义,假设需要实现三条数据权限规则:

  1. 用户身份访问返回自己创建的数据
  2. 客户端身份访问返回所有的数据
  3. 匿名访问不返回数据

这三个数据权限组成一个集合,通过一个json对象进行表示:

{
    "user": "$authc.userAuthenticated -> t.createdBy = #{env.user.id}",
    "client": "$authc.clientAuthenticated -> ",
    "default": "1=0"
}

这里定义了三条规则,jmms会按照定义的顺序进行判断,一旦符合规则立即中止判断,并使用该条规则制定的SQL表达式作为where条件拼到查询SQL中。

数据权限规则语法

  1. 同时指定判断条件和SQL表达式:{condition} -> {where}
  2. 只有判断条件,没有SQL表达式:{condition} ->
  3. 没有判断条件,只有SQL表达式:{where}

condition

{condition}是一个javascript表达式,可以在此表达式中访问所有全局变量

where

{where}是一个SQL Where表达式,使用t作为实体别名,在表达式用可以通过内置的EL表达式指定变量,格式#{expr}。

Bingosoft            updated 2018-07-23
上一篇:数据权限控制 下一篇:实体数据权限

results matching ""

    No results matching ""