Предоставление по умолчанию разрешений или группы по умолчанию для новых пользователей
По умолчанию поведение новых пользователей не имеет прав и групп. Тем не менее, я бы не хотел вручную предоставлять каждому новому пользователю новые разрешения, и я бы предположил, что они не хотят дожидаться, когда я это сделаю.
Как назначить разрешения по умолчанию для новых пользователей?
Некоторые подобные вопросы были заданы, но нет четкого ответа на общий случай:
Я использую python-social-auth
, поэтому у меня нет моей собственной формы и представления для создания, которые, как я полагаю, являются тем, где все остальные устанавливают разрешения по умолчанию. Я предполагаю, что мне нужен какой-то крюк, создаваемый пользователем, но не уверен, что самый чистый подход.
Это не связано с созданием разрешений по умолчанию, которые могут быть предоставлены пользователям, хотя для справки
Ответы
Ответ 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)