Ролі доступу
Ролі які перевіряються через 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 відповідного сервісу. Тут не дублюємо.
Як додати нову роль
- Додати значення в enum
StackRolesуstack-commons. - Додати рядок у таблицю вище.
- Додати рядок у glossary → секція «Ролі» (якщо роль варта пояснення на рівні домену).