实体数据权限控制

实体数据权限用于控制自动生成的查询操作返回的数据范围,根据请求用户或客户端的权限返回不同的数据结果集。

示例,实体Entity1定义如下:

Entity1.json

{
    "fields": {
        "id": "uuid",
        "name": "varchar(100)",
        "createdBy": "varchar(100) value user.id"
    },
    "anonymous": true,    
    "generates": "find query"
}

实现三条数据权限规则:

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

设置如下:

Entity1.json

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

实体查询操作生成的SQL中使用t作为别名。

定义后用不同的身份访问接口http://localhost:8080/entity1可以观察到后台执行SQL的变化。

Bingosoft            updated 2018-07-23
上一篇:数据权限规则 下一篇:SQL数据权限

results matching ""

    No results matching ""