# 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的權限,分別給用戶授權