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

Рассмотренные варианты

  1. Проверка в Auth Service при логине — Auth Service запрашивает статус ЮЛ через User Service, добавляет warnings в login response. Overhead на каждый логин, усложняет Auth Service.

  2. Проверка на фронте после логина — фронт после успешного логина делает отдельный запрос к User Service для проверки статуса ЮЛ. Показывает banner на Dashboard. Не нагружает Auth Service.

  3. Проверка на уровне Dashboard — Dashboard при загрузке уже запрашивает данные (ТТ, статистику). В этот момент можно проверить статус ЮЛ и показать предупреждение. Нулевой overhead — данные уже загружаются.

Ссылки