Справка · Веб-версия · Для администраторов

Пользователи

Раздел Админ → Пользователи доступен пользователям с флагом is_admin или is_superadmin.

Создание пользователя

Управление пользователямиУправление пользователями

  1. Кнопка «+ Создать пользователя».
  2. Поля:
    • Логин (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. Откройте страницу пользователя (или наведите курсор в списке).
  2. Нажмите значок 📱 — откроется модалка.
  3. При необходимости измените «Срок жизни» (1–120 минут, по умолчанию 30).
  4. Кнопка «Сгенерировать QR» — на экране появится:
    • QR-код — инженер сканирует его камерой мобильного приложения (кнопка 📷 на главном экране APK).
    • Ссылка — раскройте «Скопировать ссылку вместо QR» и отправьте её в мессенджере.
  5. После первой попытки сканирования токен становится недействительным (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).

Поэтому при необходимости архивирования сначала переназначьте его записи на другого пользователя.