ADR-005: Приостановленное ЮЛ — предупреждение при логине
Статус
Proposed — открытый вопрос, решение не принято.
Контекст
BR 1.3 требует: если ЮЛ сотрудника приостановлено — войти можно, но с предупреждением что ТТ не работают. Спека это отражает.
Проблема в том, что реализация неоднозначна по ролям:
| Роль | Привязка к ЮЛ | Проблема |
|---|---|---|
| Франшиза | Не привязан — видит все ЮЛ | Какое ЮЛ проверять? У него нет legal_entity_id |
| Франчайзи | Привязан к одному ЮЛ | Однозначно — проверить legal_entity_id из JWT |
| Менеджер ТТ | Привязан к ТТ, не к ЮЛ напрямую | Нужно ТТ → ЮЛ через Store Service |
| Кассир | Не входит в админку | Не актуально |
Дополнительно: Auth Service не имеет прямого доступа к данным ЮЛ. Цепочка вызовов:
Auth Service → User Service (employees) → User Service (legal_entities) → проверка статуса
Или через Store Service для менеджера:
Auth Service → User Service → Store Service → legal_entity_id → User Service
Это 2-3 дополнительных синхронных запроса при каждом логине.
Блокирует
- Пункт “Приостановленное ЮЛ” в спеке авторизации
- Не блокирует основной flow логина — вынесено из скоупа BR 1.3
Рассмотренные варианты
-
Проверка в Auth Service при логине — Auth Service запрашивает статус ЮЛ через User Service, добавляет
warningsв login response. Overhead на каждый логин, усложняет Auth Service. -
Проверка на фронте после логина — фронт после успешного логина делает отдельный запрос к User Service для проверки статуса ЮЛ. Показывает banner на Dashboard. Не нагружает Auth Service.
-
Проверка на уровне Dashboard — Dashboard при загрузке уже запрашивает данные (ТТ, статистику). В этот момент можно проверить статус ЮЛ и показать предупреждение. Нулевой overhead — данные уже загружаются.