Активация группы Django - PullRequest
       50

Активация группы Django

0 голосов
/ 23 ноября 2018

Если у вас есть django.contrib.auth в вашем INSTALLED_APPS, django автоматически создаст разрешения на добавление, изменение, удаление и просмотр каждой модели в вашей системе (или любой, которую вы добавите позже).Они хранятся в auth_permission.

В django doc , вот что мы можем прочитать в разделе Группы : django.contrib.auth.models.Group модели являются общим способомкатегоризация пользователей, чтобы вы могли применять к ним разрешения или другие метки.Пользователь может принадлежать к любому количеству групп. Пользователь в группе автоматически получает разрешения, предоставленные этой группе .Например, если у группы «Редакторы сайтов» есть разрешение can_edit_home_page, у любого пользователя в этой группе будет такое разрешение.

У меня есть группа без разрешения вообще (назовите ееНАДА) и я назначил эту группу конкретному пользователю (назовем его Пьер).Пьер все еще может подключаться и создавать, обновлять, удалять или просматривать что-либо в моем веб-интерфейсе.

Как я могу заставить его работать?В Интернете мало или совсем нет документов для нативного разрешения Django.

  • Я читал эту замечательную публикацию django-Разрешение-Apps-сравнение .
  • IЯ знаю, что могу установить django-guardian, django-role-permissions или django-rules ...
  • Я знаю, что мы можем управлять доступом через middleware или декоратор Но так как django IS создает эти таблицы дляus (user, groups, permissions и group_permissions)

Я думал, что реализовать CRUD-доступ для любого класса модели чрезвычайно просто!

Неправильно?

Должен ли япропустить что-то?

Примечание: Работа с Python3.6 и Django 2.1.3

1 Ответ

0 голосов
/ 26 ноября 2018

Разрешения Django просты.Насколько я понимаю ваш вопрос, вы пытаетесь создать пользователя без разрешения, и он не должен видеть никаких записей в админке Django.

Прежде всего, убедитесь, что пользователь не помечен как "суперпользователь"."суперпользователь видит все, независимо от того, в какую группу он добавлен.

Если он не является суперпользователем и все еще может видеть модель, то вам следует убедиться, что он не входит в несколько групп.Если пользователь входит в несколько групп, то к ним применяется объединение всех разрешений.Эта ссылка даст вам более подробную информацию о различных флагах для пользователя https://djangobook.com/users-groups-permissions/. Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...