操作权限控制
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"
}