AUTH-04: Layout (Sidebar + Header)

Что сделать

Layout авторизованного пользователя: sidebar с навигацией по ролям, header с именем и кнопкой “Выйти”.

Смотри спеку

Секция “После логина: Layout” в Авторизация — Логин.

Конкретно

  • Разделы зависят от роли пользователя (из AuthContext)
  • Franchise: все разделы (ЮЛ, ТТ, Каталог, Склад, Сотрудники)
  • Franchisee: свои разделы (ТТ, Каталог, Склад, Сотрудники)
  • Manager: своя ТТ (Каталог, Склад, Сотрудники)
  • Cashier: не заходит в админку (redirect)
  • Активный пункт подсвечен
  • Имя пользователя (first_name last_name) из AuthContext
  • Кнопка “Выйти”:
    • POST /api/v1/admin/auth/logout
    • Очистить токены
    • Redirect /login

Структура

  • <Layout> оборачивает контент
  • Используется только для авторизованных страниц
  • Страницы логина, forgot/reset password — без Layout

Файлы

  • web/src/components/layout/Layout.tsx — создать
  • web/src/components/layout/Sidebar.tsx — создать
  • web/src/components/layout/Header.tsx — создать
  • web/src/App.tsx — обернуть авторизованные роуты в Layout

Зависит от

  • AUTH-03 (AuthContext для user и logout)