Платформа 3V/Согласование/Права доступа и шаги: различия между версиями
(Новая страница: «Страница в разработке») |
|||
Строка 1: | Строка 1: | ||
− | + | Для определенного шага/действия процесса можно настроить разрешающие (Allow), либо запрещающие (Deny) права. <br> | |
+ | |||
+ | На один и тот же шаг можно добавить несколько разделов с настройками прав на различные субъекты доступа. <br> | ||
+ | |||
+ | Можно настроить субъект через формулу, либо задать фиксированное значение субъекта (роль, пользователя), либо завязаться на атрибут параметра процесса согласования, откуда будет тянуться субъект доступа.<br> | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">Пример JSON-модели прав доступа</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "permissions": [ | ||
+ | { | ||
+ | "stepId": 2, | ||
+ | "subjectId": "head", | ||
+ | "subject": { | ||
+ | "subjectId": "head", | ||
+ | "discriminator": "FixedSubjectDescriptionModel" | ||
+ | }, | ||
+ | "type": "Allow" | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | Основные свойства настройки прав доступа:<br> | ||
+ | |||
+ | '''stepId''' – идентификатор действия, для которого настраиваются права доступа<br> | ||
+ | |||
+ | '''subjectId''' – идентификатор роли, либо идентификатор пользователя как субъекта доступа<br> | ||
+ | |||
+ | '''subject''' – настройка субъекта доступа:<br> | ||
+ | |||
+ | 1. Фиксированное значение субъекта (роль, пользователь):<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "stepId": 4, | ||
+ | "subjectId": "admin", | ||
+ | "subject": { | ||
+ | "subjectId": "admin", | ||
+ | "discriminator": "FixedSubjectDescriptionModel" | ||
+ | }, | ||
+ | "type": "Allow" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | 2. Через формулу:<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "stepId": 1, | ||
+ | "subjectId": null, | ||
+ | "subject": { | ||
+ | "formula": { | ||
+ | "expression": "[0]", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "attributeId": "sid", | ||
+ | "discriminator": "TokenAttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 0, | ||
+ | "name": null | ||
+ | } | ||
+ | ], | ||
+ | "code": null, | ||
+ | "id": 0, | ||
+ | "name": null | ||
+ | }, | ||
+ | "discriminator": "FormulaSubjectDescriptionModel" | ||
+ | }, | ||
+ | "type": "Allow" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | 3. Из атрибута параметра объекта согласования:<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "stepId": 1, | ||
+ | "subjectId": null, | ||
+ | "subject": { | ||
+ | "parameterId": 1, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 20 | ||
+ | }, | ||
+ | "discriminator": "ParameterAttributeSubjectDescriptionModel" | ||
+ | }, | ||
+ | "type": "Allow" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | == Настройка владельца процесса == | ||
+ | |||
+ | Для объекта согласования можно настроить владельца процесса – субъект прав доступа, который имеет полные права на весь процесс согласования, право выполнять любой шаг процесса, редактировать ответственный ему экземпляр процесс согласования. Для настройки владельца процесса в JSON модели объекта согласования есть раздел owner. Свойства для настройки владельца аналогичны свойствам subject настройки субъекта доступа. | ||
+ | <br> | ||
+ | Владельца процесса можно настроить одним из вариантов:<br> | ||
+ | |||
+ | 1. Задать фиксированное значение:<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "owner": { | ||
+ | "subjectId": "34c5a091-83b3-44d4-8616-561764a64d9b", | ||
+ | "discriminator": "FixedSubjectDescriptionModel" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | 2. Получить субъект из атрибута параметра объекта согласования:<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "owner": { | ||
+ | "parameterId": 1, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 45 | ||
+ | }, | ||
+ | "discriminator": "ParameterAttributeSubjectDescriptionModel" | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | 3. Настроить формулу, для получения субъекта владельца процесса:<br> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "owner": { | ||
+ | "formula": { | ||
+ | "expression": "[0]", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "attributeId": "sid", | ||
+ | "discriminator": "TokenAttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 0, | ||
+ | "name": null | ||
+ | } | ||
+ | ], | ||
+ | "code": null, | ||
+ | "id": 0, | ||
+ | "name": null | ||
+ | }, | ||
+ | "discriminator": "FormulaSubjectDescriptionModel" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> |
Текущая версия на 10:36, 25 ноября 2021
Для определенного шага/действия процесса можно настроить разрешающие (Allow), либо запрещающие (Deny) права.
На один и тот же шаг можно добавить несколько разделов с настройками прав на различные субъекты доступа.
Можно настроить субъект через формулу, либо задать фиксированное значение субъекта (роль, пользователя), либо завязаться на атрибут параметра процесса согласования, откуда будет тянуться субъект доступа.
1 "permissions": [
2 {
3 "stepId": 2,
4 "subjectId": "head",
5 "subject": {
6 "subjectId": "head",
7 "discriminator": "FixedSubjectDescriptionModel"
8 },
9 "type": "Allow"
10 }
11 ]
Основные свойства настройки прав доступа:
stepId – идентификатор действия, для которого настраиваются права доступа
subjectId – идентификатор роли, либо идентификатор пользователя как субъекта доступа
subject – настройка субъекта доступа:
1. Фиксированное значение субъекта (роль, пользователь):
1 {
2 "stepId": 4,
3 "subjectId": "admin",
4 "subject": {
5 "subjectId": "admin",
6 "discriminator": "FixedSubjectDescriptionModel"
7 },
8 "type": "Allow"
9 }
2. Через формулу:
1 {
2 "stepId": 1,
3 "subjectId": null,
4 "subject": {
5 "formula": {
6 "expression": "[0]",
7 "operands": [
8 {
9 "attributeId": "sid",
10 "discriminator": "TokenAttributeFormulaOperandDto",
11 "code": null,
12 "id": 0,
13 "name": null
14 }
15 ],
16 "code": null,
17 "id": 0,
18 "name": null
19 },
20 "discriminator": "FormulaSubjectDescriptionModel"
21 },
22 "type": "Allow"
23 }
3. Из атрибута параметра объекта согласования:
1 {
2 "stepId": 1,
3 "subjectId": null,
4 "subject": {
5 "parameterId": 1,
6 "attribute": {
7 "discriminator": "OwnAttributeDefinitionDto",
8 "id": 20
9 },
10 "discriminator": "ParameterAttributeSubjectDescriptionModel"
11 },
12 "type": "Allow"
13 }
Настройка владельца процесса
Для объекта согласования можно настроить владельца процесса – субъект прав доступа, который имеет полные права на весь процесс согласования, право выполнять любой шаг процесса, редактировать ответственный ему экземпляр процесс согласования. Для настройки владельца процесса в JSON модели объекта согласования есть раздел owner. Свойства для настройки владельца аналогичны свойствам subject настройки субъекта доступа.
Владельца процесса можно настроить одним из вариантов:
1. Задать фиксированное значение:
1 "owner": {
2 "subjectId": "34c5a091-83b3-44d4-8616-561764a64d9b",
3 "discriminator": "FixedSubjectDescriptionModel"
4 }
2. Получить субъект из атрибута параметра объекта согласования:
1 "owner": {
2 "parameterId": 1,
3 "attribute": {
4 "discriminator": "OwnAttributeDefinitionDto",
5 "id": 45
6 },
7 "discriminator": "ParameterAttributeSubjectDescriptionModel"
8 }
9 }
3. Настроить формулу, для получения субъекта владельца процесса:
1 "owner": {
2 "formula": {
3 "expression": "[0]",
4 "operands": [
5 {
6 "attributeId": "sid",
7 "discriminator": "TokenAttributeFormulaOperandDto",
8 "code": null,
9 "id": 0,
10 "name": null
11 }
12 ],
13 "code": null,
14 "id": 0,
15 "name": null
16 },
17 "discriminator": "FormulaSubjectDescriptionModel"
18 }