# 10.授权
# 权限定义
在设置
-权限定义
-资源
可新建权限定义
资源 | 描述 | 可用操作 |
---|---|---|
* | 全部资源 | * |
@* | 全部单据 | *|READ|WRITE |
@类型KEY | 指定单据 | *|READ|WRITE |
@单据KEY|单据KEY | 指定多个单据 | *|READ|WRITE |
#* | 全部数据源 | * |
#数据源KEY | 指定数据源 | * |
DEF | 配置资源 | *|REGISTRY|COMPONENT|BPM|DMN|DOCTYPE |
DEVOPS | 运维资源 | *|BPM|CACHE|DATASYNC|DEPLOY |
SETTINGS | 设置资源 | *|MENU|AUTH |
SYS | 系统资源 | *|LOGIN |
# 授权限制
TIP
授权限制是一段ElasticSearch的Filter语法
例:一个简单的授权限制,限制用户只能访问ZR01
这个单据类型
{
"term": {
"docType": "ZR01"
}
}
1
2
3
4
5
2
3
4
5
当然,授权限制可以使用SpEL来动态获取当前用户的属性,作为限制条件
下面的例子展示如何获取当前用户单据下的org卡片中的orgId字段作为orgId的过滤条件
{
"term": {
"orgId": "${data.org?.orgId}"
}
}
1
2
3
4
5
2
3
4
5
更复杂的条件
{
"bool": {
"must":[
{
"term": {
"docType": "ZR01"
}
},
{
"term": {
"orgId": "${data.org?.orgId}"
}
}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 单据权限
单据权限是单据资源+读或写+限制+扩展规则的组合
# 单据扩展规则
单据扩展规则是一个JSON格式的描述
includes与excludes指定包含或不包含的卡片集合
states指定用户可操作的单据状态
{
"includes":["card1","card1","card1"],
"excludes":["card1","card1","card1"],
"states":["S001","S002"]
}
1
2
3
4
5
2
3
4
5
TIP
对于用户对单据的读写操作不一致的情况卡,可以分别创建READ操作的权限与WRITE的权限,分别给用户授权