Безопасность бизнес-процесса¶
Описание¶
Безопасность в бизнес-процессе нужна для контроля прав над конкретным объектом одним пользователем и задается через мету класса, статусы и переходы бизнес-процесса.
Реализация¶
В мете заранее надо опеределить строковый атрибут, в котором будет храниться идентификатор пользователя.
Для контроля прав при переходах по БП надо в перееходе добавить присваивание текущего пользователя в атрибут, по которому будут выдаваться права на следующем статусе БП.
Затем задаем в статусе БП уровень доступа в свойстве itemPermissions
:
"itemPermissions": [
{
"role": ...
"permissions": ...
}
]
role
- указывается атрибут, который хранит идентификатор пользователяpermissions
- задается число по битовой маске, которое соотноcится с уровнем доступаrole
к объекту- 1 - чтение
- 2 - запись
- 4 - удаление
- 8 - использование
- 31 - полный доступ
Можно использовать права в любом порядке. Например:
- чтение + запись = 3
- чтение + запись + удаление = 7
- чтение + запись + удаление + использование = 15
Внимание! В бизнес-процессе динамические права могут только предоставить больше доступа. Уменьшить доступ нельзя.
Примеры¶
Присваивание в переходе БП атрибуту person
текущего пользователя, работающим с объектом
"assignments": [
{
"key": "person",
"value": "$$uid"
}
]
Добавление itemPermissions
в статус БП
"states": [
{
"itemPermissions": [
{
"role": "person",
"permissions": 15
}
]
}
]