roles

Ролі доступу

Ролі які перевіряються через guard([StackRoles.<name>]) у бек-сервісах. Описуємо коротко — детальні бізнес-правила лишаємо коду і Swagger-у.

Список

Роль (код)КомуПризначення
StackRoles.directorКерівництвоНайвищий рівень доступу. Може все що обмежено цією роллю в Swagger. (TODO: уточнити обсяг)
StackRoles.topManagerТоп-менеджмент агенції(TODO)
StackRoles.supervisorСупервайзер операторів(TODO)
StackRoles.client_managerМенеджер клієнтів(TODO)
StackRoles.operatorОператор electron-клієнтаОсновний користувач stack-electron. Викликає /golden/electron-api/*.

Як це працює технічно

  • Enum StackRoles живе в stack-commons.
  • На кожному ендпоінті: @UseBefore(guard([StackRoles.<name>, ...])).
  • Без потрібної ролі → HTTP 400 + {success:false, data:{message:'Not allow role'}}.
  • Без токена взагалі → HTTP 401.
  • guard([]) (порожній масив) — будь-який авторизований користувач.

Список конкретних ендпоінтів захищених кожною роллю — у Swagger UI відповідного сервісу. Тут не дублюємо.

Як додати нову роль

  1. Додати значення в enum StackRoles у stack-commons.
  2. Додати рядок у таблицю вище.
  3. Додати рядок у glossary → секція «Ролі» (якщо роль варта пояснення на рівні домену).