Предоставление разрешений по умолчанию или группы по умолчанию для новых пользователей
Поведение по умолчанию, кажется, новые пользователи не имеют никаких разрешений и групп. Однако я не хотел бы вручную предоставлять каждому новому пользователю базовые разрешения, и я бы предположил, что им не нужно будет ждать, пока я это сделаю.
Как назначить разрешения по умолчанию для новых пользователей?
Были заданы некоторые похожие вопросы, но без четкого ответа для общего случая:
- Права пользователя Django по умолчанию
- Как определить разрешения по умолчанию для пользователей в Django Guardian?
- Django Assign-Perm с сигналом после сохранения
я использую python-social-auth
поэтому у меня нет своей собственной формы и представления для создания пользователя, которая, как я предполагаю, является тем, где все остальные устанавливают разрешения по умолчанию. Я предполагаю, что мне нужен какой-то хук на создание пользователя, но я не уверен, что это самый чистый подход.
Это не связано с созданием возможных разрешений по умолчанию, которые могут быть предоставлены пользователям, хотя для справки:
1 ответ
Вы можете подписаться на сигнал post_save на модели User и поместить вновь созданного пользователя в желаемую группу или добавить разрешения.
from django.contrib.auth.models import User, Group
def add_to_default_group(sender, **kwargs):
user = kwargs["instance"]
if kwargs["created"]:
group = Group.objects.get(name='groupname')
user.groups.add(group)
И на django 1.8+ поместите следующий код в ваш AppConfig.ready()
post_save.connect(add_to_default_group, sender=User)