为新用户提供默认权限或默认组

Giving default permissions or a default group to new users

默认行为似乎是新用户没有权限也没有组。但是,我不想手动授予每个新用户基本权限,而且我假设他们不想等待我这样做。

我应该如何为新用户分配默认权限?

有人问过一些类似的问题,但一般情况下没有明确的答案:

我正在使用 python-social-auth,所以我没有自己的创建用户表单和视图,我猜这是其他人设置默认权限的地方。我假设我需要某种基于用户创建的挂钩,但不确定最干净的方法是什么。

这与创建可能授予用户的默认可能权限无关,但仅供参考,

您可以在用户模型上订阅 post_save 信号并将新创建的用户放入所需的组或添加权限。

from django.contrib.auth.models import 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()

from django.conf import settings

post_save.connect(add_to_default_group, sender=settings.AUTH_USER_MODEL)