Задать вопрос
@DaniilGri

В чем разница групп с правами и булевыми полями юзера?

Такой вопросик: у django есть возможность добавлять булевые свойства как is_staff, is_superuser. Также там есть возможность на каждого отдельного юзера добавлять права, например, на разрешение удаления или рндактирования, а также есть группы, куда можно записать юзера с правами. А в чем разница is_stuff, is_superuser и тех остальных прав, которые можно записать на группу юзеров?
  • Вопрос задан
  • 1102 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
mututunus
@mututunus
Backend developer (Python, Golang)
is_superuser - имеет права на создание/редактирование/удаление всех объектов, is_staff - имеет только явно выданные права.
Ответ написан
Комментировать
Стандартные разрешения в django привязаны к CRUD-операциям, и даже без R: create, update и delete. Таким образом, эти операции определяют доступ к конкретным категориям объектов.

Флаги is_active, is_staff и is_superuser имеют более общий смысл: они определяют статус пользователя, его положение в системе. Если not is_active, никакие выданные пользователю permissions не применяются. Если is_superuser, то они не имеют никакого значения - у пользователя есть все permissions, которые в системе есть, и даже те, которых нет (has_perm() возвращает всегда True).

Наконец, is_staff определяет доступ к админке и, таким образом, указывает, можешь ли ты в рамках админки использовать те permissions, что тебе назначены.

Таким образом, перечисленные флаги являются не аналогом permissions, а ортогональны им, регулируя применение уже имеющихся permissions.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы