joz*_*yqk 12 django django-permissions python-social-auth
默认行为似乎是新用户没有权限而没有组.但是,我不想手动授予每个新用户基本权限,我认为他们不想等我这样做.
我应该如何为新用户分配默认权限?
已经提出了一些类似的问题,但对一般情况没有明确的答案:
我正在使用python-social-auth所以我没有自己的创建用户表单和视图,我想其他人都设置了默认权限.我假设我需要某种类型的on-user-create挂钩,但不确定最干净的方法是什么.
这与创建可能授予用户的默认可能权限无关,但作为参考,
kmm*_*vnr 11
您可以在User模型上订阅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)
Run Code Online (Sandbox Code Playgroud)
在django 1.8+上将以下代码放入AppConfig.ready()
post_save.connect(add_to_default_group, sender=User)
Run Code Online (Sandbox Code Playgroud)