Путаница с системой разрешений Django

Django поставляется с простой системой разрешений. Он позволяет назначать разрешения определенным пользователям и группам пользователей. Например: 'app_lable.model_name'. Это может быть удобно для администратора django, но я думаю, что это будет сложно, когда я буду использовать его для контроля того, что люди могут с ним делать.

Например, если я хочу контролировать, может ли определенный пользователь оставлять комментарии или просматривать часть содержимого моего сайта. Мне нужно настроить для него группу разрешений, но почему бы просто не добавить пользовательское свойство, такое как can_post или can_view_certain_portion? Это кажется более интуитивным. Итак, кто может помочь мне понять эти вещи? Заранее спасибо.


person Helpme123    schedule 29.03.2016    source источник


Ответы (1)


Причина сохранения разрешений в отдельной модели заключается в использовании групп.

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

Кроме того, поскольку пользователи могут принадлежать более чем к одной группе, у вас больше гибкости для настройки разрешений для каждого пользователя.

Имейте в виду, что разрешения vanilla django основаны на модели, поэтому, если вам нужно ограничить изменение только определенных полей для разных пользователей, вам понадобится что-то более надежное, например, django-guardian.

person D. Starr    schedule 04.04.2016