12. Юридическое досье — модель прав доступа (Permissions)
Date: 2026-01-22
Status
Accepted
Context
Разные роли имеют разные права:
- Инициатор — создаёт запрос, видит свои запросы
- Юрист — берёт в работу, заполняет заключение
- Руководитель — утверждает/отклоняет
Decision
Комбинация Django permissions и DRF permission classes:
python
# Model permissions
can_take_to_work # Юрист
can_submit_for_review # Юрист
can_approve_conclusion # Руководитель
can_reject_conclusion # Руководитель
can_view_all_conclusions # Юрист, Руководитель
can_view_statistics # Руководитель
# DRF permission classes
IsLawyer, IsLegalManager, CanEditConclusion, CanApprove, etc.1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Обоснование
- Гранулярность — точный контроль на уровне действий
- Совместимость — использование стандартного механизма Django
- Расширяемость — легко добавить новые роли через groups
Consequences
- (+) Безопасность на уровне API
- (+) Переиспользование в админке
- (-) Необходимость настройки групп при деплое
Источник: backend/narmak_v2/app/legal_dossier/ADR.md (ADR-007)