1.4.2 Пересмотр ролевой модели — Декомпозиция

BR в работу

Источники

Суть изменений

  • Переименование ролей: franchiseadmin_franchise, franchiseeadmin_franchisee
  • Через POST /employees создаются только manager/cashier (admin_* — 400 ADMIN_ROLE_FORBIDDEN)
  • POST /legal-entities (type=franchisee) — атомарное создание ЮЛ + employee (admin_franchisee) + связывание через owner_user_id
  • Ответ содержит owner credentials (email + temporary_password если был сгенерирован)
  • Все сервисы — заменить строковые сравнения роли

Прогресс

  • User Service — миграция, валидация, транзакция ЮЛ+owner, строковые замены
  • Auth Service — JWT, опциональный транзитный период
  • Store Service — строковые замены role comparisons
  • Catalog Service — строковые замены role comparisons
  • Warehouse Service — строковые замены role comparisons
  • Order Service — строковые замены role comparisons
  • Admin Franchise — BFF types + Web (форма сотрудника, форма ЮЛ, модалка, лейблы)

Порядок работ

  1. User Service: Liquibase migration (UPDATE employees.role), обновление CHECK constraint, валидация CreateEmployeeRequest (reject admin_*), строковые замены role-checks
  2. User Service: POST /legal-entities — транзакционное создание owner-employee + owner_user_id, генерация временного пароля, расширение response
  3. Auth Service: выпуск JWT с новыми значениями role; (опционально) accept both old/new для переходного периода
  4. Store / Catalog / Warehouse / Order Service: синхронно заменить "franchise""admin_franchise", "franchisee""admin_franchisee" в role comparisons + JWT parsing
  5. Admin BFF + Admin Web: обновить shared EmployeeRole, форма сотрудника (убрать admin_*), форма ЮЛ (блок “Владелец”), модалка “Партнёр создан”, русские лейблы, AuthContext, sidebar

Синхронный деплой

Все сервисы + фронт должны обновиться одновременно. Старые JWT перестанут валидироваться (breaking change) — вынужденный relogin, если не включать транзитный период в Auth Service.

Блокеры

Нет.

Ссылки