操作权限控制

Added in 0.4.0

操作权限控制分为:自定义操作和实体自动生成操作,两种类型的操作都可以通过下面的安全表达式进行权限设置和控制。

安全表达式

  • 设置只允许用户访问 (默认)
    security = user
  • 设置只允许拥有某些权限的用户才能访问
    security = user read

read是权限

多个权限

    security = user read write

read write是两个权限

  • 设置需要客户端身份才能访问
    security = client
  • 设置需要拥有某些权限的客户端才能访问
    security = client read write

read write是两个权限

  • 设置同时允许用户或客户端访问
    security = user | client

通过符号|表示或

加上权限:

    security = user | client admin

表示用户登录即可访问,或者拥有admin权限的客户端也可以访问

全局默认设置

config.json

{
    "api": {
        "security": "user | client"
    }
}

自定义操作设置

app/operations/@get.js

  • 需要授权
/**
 * @security client admin
 */
function _() {
}
  • 允许匿名访问
/**
 * @anonymous
 */
function _() {
}

实体自动生成操作设置

权限映射

  • read : 映射到 find, query 操作
  • write : 映射到 create, update, delete 操作

设置权限

下面以实体Book进行举例说明:

  • 允许匿名访问
{
    "anonymous": true
}
  • 有用户身份或客户端身份即可访问
{
    "security": "user | client"
}
  • 访问读操作时需要Read权限,访问写操作时需要Write权限
{
    "security": "user Read Write"
}
  • 访问读操作时需要Book.Read权限,访问写操作时需要Book.Write权限
{
    "security": "user {Entity}.Read {Entity}.Write"
}
  • 访问读写操作时需要Book权限
{
    "security": "user {Entity}"
}
  • 访问读写操作时客户端需要admin权限
{
    "security": "user | client admin"
}
  • 访问写操作时客户端需要admin权限
{
    "security": "user | client write=admin"
}
Bingosoft            updated 2018-07-23
上一篇:身份认证和授权 下一篇:数据权限控制

results matching ""

    No results matching ""