Skip to main content

Общая информация

Процесс имеет гибкую редактируемую систему допусков к нему. Эта гибкость достигается путем создания определенных ролей для пользователей панели администратора и наборов разрешений к ним. Каждое разрешение определяет доступ к определенному методу, за исключением нескольких разрешений определяющих доступ ко всем методам сразу.

Короткая схема

  • Создается разрешение А
  • Создается разрешение B
  • Создается раазрешение C
  • Создается роль D
  • Роли D присваивается массив с айдишниками разрешений, который может содержать произвольное кол-во разрешений. Например: A, B, C, либо не иметь разрешений совсем
  • Теперь юзер с ролью D, сможет обращаться только по разрешенным в А, B, C методам

Установка и удаление разрешений для роли осуществляется с помощью метода PATCH /roles/:role_id

Состав разрешения

"Permission" - обязательно одна строка, заданная по следующему шаблону:

permission_template

Некоторые примеры:

  • 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"