Авторизация
Источник требований
Сотрудники франшизы входят в бэк-офис по email и паролю. После входа система показывает только те разделы и данные, к которым сотрудник имеет доступ.
Зависимость: ADR-004
Реализация заблокирована — нужен BR по сотрудникам (таблица employees, CRUD).
Кто входит
| Роль | Доступ в админке |
|---|---|
| Франшиза | Видит всё: все ЮЛ, все ТТ, весь каталог, все отчёты |
| Франчайзи | Только свои ЮЛ и торговые точки |
| Менеджер ТТ | Только свою торговую точку |
| Кассир | Не входит в админку (работает через POS) |
Роль задаётся при создании сотрудника.
Логин
- Сотрудник открывает страницу логина
- Вводит email и пароль
- Нажимает “Войти”
- Система определяет роль и перенаправляет на Dashboard
Сессия
- После входа сотрудник остаётся залогиненным не менее 30 дней
- Закрытие браузера не завершает сессию
- Сессия обновляется автоматически и незаметно (refresh token)
- Если сессия истекла — перенаправление на страницу логина
Выход
- Кнопка “Выйти” в правом верхнем углу (в шапке)
- При нажатии: сессия завершается, перенаправление на логин
- После выхода автоматический вход невозможен — нужен email+пароль
Восстановление пароля
- На странице логина ссылка “Забыли пароль?”
- Форма: ввод email
- На email приходит письмо со ссылкой для сброса (через Resend)
- Сотрудник переходит по ссылке → форма “Новый пароль”
- Вводит новый пароль дважды → готово, можно входить
- Ссылка действует 1 час
- После использования — перестаёт работать
Безопасность
Неверный пароль
- Сообщение: “Неверный email или пароль” (без уточнения что именно неверно)
- После 5 неудачных попыток подряд — аккаунт блокируется на 15 минут
- Сообщение: “Слишком много попыток. Попробуйте через 15 минут.”
Деактивированный сотрудник
- Войти невозможно
- Сообщение: “Учётная запись деактивирована. Обратитесь к администратору.”
Приостановленное ЮЛ
Отложено — отдельная задача
Логика неоднозначна по ролям: franchise не привязан к ЮЛ, manager — к ТТ. Требует интеграции Auth → User → Store. Будет реализовано отдельной BR после базовой авторизации.
- Войти можно, но с предупреждением что ТТ не работают
- Сотрудник может просматривать данные, но не совершать операции на приостановленных ТТ
Что НЕ входит
- PIN-авторизация кассиров (POS, отдельная задача)
- Авторизация клиентов (SMS/Telegram/Flash-call, сайт/приложение)
- Двухфакторная аутентификация (не в MVP)
- Смена пароля в настройках (отдельная задача)
- Регистрация (сотрудников создаёт франшиза/франчайзи)