Подтвердить что ты не робот

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

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

Как назначить разрешения по умолчанию для новых пользователей?

Некоторые подобные вопросы были заданы, но нет четкого ответа на общий случай:

Я использую python-social-auth, поэтому у меня нет моей собственной формы и представления для создания, которые, как я полагаю, являются тем, где все остальные устанавливают разрешения по умолчанию. Я предполагаю, что мне нужен какой-то крюк, создаваемый пользователем, но не уверен, что самый чистый подход.

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

4b9b3361

Ответ 1

Вы можете подписаться на post_save на модели пользователя и поместить вновь созданного пользователя в нужную группу или добавить разрешения.

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)