Роли и права доступа
Раздел Админ → Роли доступен только суперадминистраторам (флаг is_superadmin).
Модель прав
Роли и права
Права хранятся как плоский набор булевых флагов на роли. Для каждой сущности — четыре права:
<entity>_read просмотр
<entity>_create создание
<entity>_modify изменение
<entity>_delete удаление
Например: object_read, object_create, object_modify, object_delete, issue_read, issue_create, ...
Плюс общие / специальные флаги:
is_admin— доступ к админ-меню (кроме «Роли»).is_superadmin— полный доступ, включая управление ролями.user_onboard_mobile— право выдавать QR / ссылку для входа пользователя в мобильное приложение. Роли сis_admin/is_superadminполучают его автоматически, обычным ролям — включайте вручную. См. admin-users.md — раздел «📱 QR-код для входа в мобильное приложение».
Стандартные роли
Системой предусмотрены:
| Роль | Права |
|---|---|
| Суперадмин | is_superadmin = true + все права |
| Админ | is_admin = true + все CRUD-права |
| Сотрудник | только *_read + issue_create, report_create, order_create |
| Только чтение | только *_read |
Заявка на устранение неисправности создаётся по праву
order_create— отдельноеissue_modifyне нужно (статус неисправности «Новая» → «В работе» система меняет сама).
Создание роли
- Раздел «Роли» → «+ Создать роль».
- Введите название.
- По умолчанию все права false. Включите нужные галочки.
- Сохраните.
Назначение роли пользователю
В разделе «Пользователи» в карточке пользователя поле «Роль» — выпадающий селект.
Что произойдёт без права
*_read = false→ раздел вообще не загружается (API возвращает 403).*_create = false→ кнопка «Создать» скрыта.*_modify = false→ кнопки «Редактировать», «Изменить статус» скрыты.*_delete = false→ кнопка «Удалить» скрыта.
Фронт-скрытие кнопок — это удобство. Реальная защита — на бэкенде через
core/dependencies.py. Даже если кто-то «сломает» интерфейс, API не даст выполнить действие без права.