Общая информация
Процесс имеет гибкую редактируемую систему допусков к нему. Эта гибкость достигается путем создания определенных ролей для пользователей панели администратора и наборов разрешений к ним. Каждое разрешение определяет доступ к определенному методу, за исключением нескольких разрешений определяющих доступ ко всем методам сразу.
Короткая схема
- Создается разрешение А
- Создается разрешение B
- Создается раазрешение C
- Создается роль D
- Роли D присваивается массив с айдишниками разрешений, который может содержать произвольное кол-во разрешений. Например: A, B, C, либо не иметь разрешений совсем
- Теперь юзер с ролью D, сможет обращаться только по разрешенным в А, B, C методам
Установка и удаление разрешений для роли осуществляется с помощью метода PATCH /roles/:role_id
Состав разрешения
"Permission" - обязательно одна строка, заданная по следующему шаблону:
Некоторые примеры:
- allow: method[get] /auth/jwt/3 - разрешить доступ к методу, который генерирует JWT токен для сторонней системы
- deny: method[get] /nodes/11111 - запретить доступ к методу, который предостаавляет информаию о ноде 11111
- allow: all - разрешить доступ ко всем методам
- allow: method /properties/12 - разрешен доступ к методам GET/PATCH/DELETE
Правила обработки разрешений
- Если разрешений не установлено, по дефолту считать deny: all
- Запрещено всё, что не разрешено
- Области разрешений одной роли могут пересекаться. "deny" всегда приоритетнее, чем "allow"