Пользователи
Раздел Админ → Пользователи доступен пользователям с флагом is_admin или is_superadmin.
Создание пользователя
Управление пользователями
- Кнопка «+ Создать пользователя».
- Поля:
- Логин (
name) — должен быть уникальным. - Полное имя — для отображения в селектах ответственных.
- Email — для контакта.
- Телефон, Telegram ID — опционально.
- Роль — обязательно. Выберите из списка ролей.
- Пароль — задаётся при создании, можно изменить отдельно.
- Логин (
Детальная информация о пользователе
Клик по строке пользователя в списке открывает страницу «Пользователь» с:
- профилем (логин / ФИО / email / статус / признак защищённой учётки);
- ролью и раскладкой активных прав по группам (✓ рядом с включёнными флагами);
- панелью действий: ✏️ редактировать · 🔴/🟢 деактивировать · 🚪 разлогинить со всех устройств · 📱 QR для мобильного (если у Вас есть право
user_onboard_mobile) · 🗑️ удалить.
Кнопки в панели действий доступны и в самом списке — клик по иконке не открывает деталь (click.stop).
Действия над защищённой учёткой (is_protected) заблокированы: нельзя менять статус и удалять. Редактирование — можно, но обычно ограничено сменой роли и пароля.
🚪 Разлогинить пользователя со всех устройств
Кнопка 🚪 (в списке пользователей и на детальной странице) отзывает все активные сессии выбранного пользователя — на всех устройствах, где он был авторизован (веб-браузеры, мобильное приложение).
Что происходит:
- Все refresh-токены пользователя помечаются в БД как отозванные (
user_sessions.revoked_at = NOW()). - В момент отзыва пользователь остаётся авторизованным до истечения текущего access-токена (до 30 минут). При следующем запросе, где access-токен уже недействителен, попытка refresh не пройдёт (сессия уже отозвана) → его выкинет на экран входа.
- Мобильное приложение автоматически покажет форму входа и попросит новый QR / логин-пароль.
Когда использовать:
- Уволенный сотрудник — заблокировать доступ мгновенно, не дожидаясь смены пароля.
- Утрата устройства (телефон/ноутбук) — прекратить активные сессии на нём.
- Подозрение на компрометацию учётки.
- Смена роли, при которой пользователю нужно перезайти для получения новых прав.
Ограничения:
- Действие подтверждается через
confirm()— случайно не выполнится. - Пользователь может залогиниться заново со своим паролем сразу же — это только отзыв текущих токенов, а не блокировка аккаунта. Для блокировки — используйте деактивацию (🔴).
- Если нужно посмотреть свои собственные сессии — раздел Профиль → Мои сессии (кнопка «Отозвать» на конкретной сессии).
📱 QR-код для входа в мобильное приложение
Каждому пользователю можно выдать одноразовый QR-код для входа в мобильное приложение AutoReport без ввода пароля.
Кто может выдавать: роли с правом user_onboard_mobile (либо is_admin / is_superadmin). Настраивается в Админ → Роли → блок «Пользователи» → флаг «📱 Генерация QR для мобильного».
Как выдать:
- Откройте страницу пользователя (или наведите курсор в списке).
- Нажмите значок 📱 — откроется модалка.
- При необходимости измените «Срок жизни» (1–120 минут, по умолчанию 30).
- Кнопка «Сгенерировать QR» — на экране появится:
- QR-код — инженер сканирует его камерой мобильного приложения (кнопка 📷 на главном экране APK).
- Ссылка — раскройте «Скопировать ссылку вместо QR» и отправьте её в мессенджере.
- После первой попытки сканирования токен становится недействительным (issue-once), даже если срок ещё не истёк.
Что происходит при сканировании:
- Мобильное приложение проверяет токен и создаёт сессию под указанным пользователем.
- Инженер сразу попадает на главный экран приложения; логин и пароль вводить не нужно.
- Если токен просрочен — приложение просит попросить у администратора новый QR.
Ограничения:
- Суперадмина в мобильное приложение выпустить нельзя (это админ-роль, для полевых работ она не предназначена).
- Деактивированному пользователю (
is_active = false) токен тоже не выпускается.
Функция полностью работает внутри Вашей организации — обращаться к общему администратору сервиса не нужно.
Изменение пароля
На странице пользователя кнопка «Изменить пароль» открывает форму с одним полем «Новый пароль». Новый пароль сразу хешируется bcrypt и сохраняется.
Активация / деактивация
Флаг is_active:
false— пользователь не сможет войти в систему (login возвращает 401).- Это «мягкое» удаление. Реальное удаление каскадно затронет отчёты и заявки этого пользователя, поэтому обычно лучше деактивировать.
Кто видит кого
- Все авторизованные могут читать список пользователей (это нужно для селектов ответственных).
- Изменение/удаление — только с правами
user_modify/user_delete.
Связь с другими сущностями
Пользователь упоминается:
- В отчётах (
Report.user_id— автор). - В заявках (
Order.created_by). - В неисправностях (
Issue.reported_by,Issue.assigned_to).
Поэтому при необходимости архивирования сначала переназначьте его записи на другого пользователя.