Права и доступ в трекере задач
Права трекера задач хранятся в роли пользователя. Несколько ролей объединяются: достаточно, чтобы право было включено хотя бы в одной роли.
Права роли
| Право | По умолчанию | Что разрешает |
|---|---|---|
view_all |
включено | видеть задачи всех сотрудников в доступных заведениях |
edit_all |
выключено | редактировать, завершать и вести чек-лист любых задач |
assign |
выключено | менять ответственного в существующей задаче |
delete_all |
выключено | удалять и восстанавливать любые задачи |
manage_templates |
выключено | изменять, запускать и удалять чужие шаблоны |
view_all=true по умолчанию сохраняет прежнее поведение модуля, но даёт
широкий доступ. Если сотрудник должен видеть только свои задачи, выключите это
право в роли.
Company-account имеет все пять прав независимо от настроек роли.
Область заведений
Помимо прав роль определяет доступные заведения. Сотрудник видит:
- задачи доступных заведений;
- company-wide задачи без заведения.
Company-account видит все заведения компании.
Задачи другого заведения недоступны даже при знании UUID. Для чужих задач API
возвращает 404, чтобы не раскрывать их существование.
Что даёт каждое право
view_all
При включённом праве сотрудник видит все задачи в доступных заведениях.
При выключенном:
- список ограничен задачами, где сотрудник создатель или ответственный;
- представления «Просроченные», «Назначенные мне» и «Созданные мной» тоже ограничены его задачами;
- карточка чужой задачи возвращает
404; - комментарии к чужой задаче запрещены;
- восстановление чужой задачи запрещено;
- аналитика считает только его задачи.
edit_all
Разрешает редактировать, завершать, возвращать в работу и вести чек-лист любых задач в доступных заведениях.
Без права редактировать может создатель и ответственный.
assign
Разрешает менять ответственного в существующей задаче, если пользователь не создатель и не company-account.
При создании задачи ответственного можно выбрать без отдельного права, если сотрудник доступен в компании и заведении.
delete_all
Разрешает удалять и восстанавливать любые задачи в доступных заведениях.
Без права удалять может создатель задачи.
manage_templates
Разрешает изменять, запускать вручную и удалять чужие шаблоны.
Без права управлять шаблоном может его создатель. Создание шаблона требует
доступа к заведению, отдельное manage_templates для создания не нужно.
Проверка прав
Права проверяются на backend при каждом запросе. Скрытие кнопок в интерфейсе — дополнительная подсказка, а не замена серверной проверке.
Типичные ответы:
| Ситуация | Ответ |
|---|---|
| нет доступа к модулю или компании | 403 |
| нет доступа к заведению | 403 |
| задача не существует или недоступна по scope | 404 |
| нет права на редактирование, удаление или назначение | 403 |
| устаревшая версия задачи | 409 |
| нарушены ограничения полей | 422 |