1.4.2 Пересмотр ролевой модели — Декомпозиция
BR в работу
Источники
- BR: 1.4.2 Пересмотр ролевой модели
- Бизнес-спека (сотрудники): Сотрудники
- Бизнес-спека (ЮЛ): Юридические лица
- Ролевая модель: Roles
- User Service API: API
- User Service Data Model: Data Model
- Auth Service API: API
- Frontend — Сотрудники: Сотрудники — Карточка
- Frontend — ЮЛ: Юридические лица — Карточка
Суть изменений
- Переименование ролей:
franchise→admin_franchise,franchisee→admin_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 (форма сотрудника, форма ЮЛ, модалка, лейблы)
Порядок работ
- User Service: Liquibase migration (UPDATE employees.role), обновление CHECK constraint, валидация
CreateEmployeeRequest(reject admin_*), строковые замены role-checks - User Service:
POST /legal-entities— транзакционное создание owner-employee +owner_user_id, генерация временного пароля, расширение response - Auth Service: выпуск JWT с новыми значениями
role; (опционально) accept both old/new для переходного периода - Store / Catalog / Warehouse / Order Service: синхронно заменить
"franchise"→"admin_franchise","franchisee"→"admin_franchisee"в role comparisons + JWT parsing - Admin BFF + Admin Web: обновить shared
EmployeeRole, форма сотрудника (убрать admin_*), форма ЮЛ (блок “Владелец”), модалка “Партнёр создан”, русские лейблы, AuthContext, sidebar
Синхронный деплой
Все сервисы + фронт должны обновиться одновременно. Старые JWT перестанут валидироваться (breaking change) — вынужденный relogin, если не включать транзитный период в Auth Service.
Блокеры
Нет.