用户/组权限类

时间:2014-09-28 13:32:03

标签: django django-views

我想创建一个包含用户和组的单个类UserGroup。最后,我希望能够根据给定用户是在用户M2M中还是在组M2M中来授予某些任务权限。我知道组中有权限,但我希望能够为单个用户(可能)提供权限,并且我想要一致的界面。类定义是(我实际上已将Member定义为User):

class UserGroup( models.Model ):

    users = models.ManyToManyField( Member )
    groups = models.ManyToManyField( Group )

然后在我的views.py中,我想我会有类似的东西:

def is_in( member ):

    ## Check to see if they are in the User m2m
    if members.objects.filter(pk=member.id).exists():
        return True

    ## Check to see if they are in the Group m2m
    if <something>:
        return True

    ## Otherwise return false.
    return False

我认为这是有道理的。我不确定的是一种检查成员是否在群组M2M中的一个群组中的有效方法。

(如果有人想给我整个班级的建设性意见,我也很乐意接受这些意见。)

1 个答案:

答案 0 :(得分:1)

Django的管理界面和基本用户模型已经允许这样做。可以将用户添加到组,并且可以为这两个组/用户授予权限。如果您有超出内置的额外需求,您可以开始覆盖用户或组模型方法。

In Django, how do I check if a user is in a certain group?

User groups and permissions

在管理员中查看用户对象时,请参阅“用户权限”部分。这些是您可以为用户设置的设置,这些设置会覆盖按组成员身份为用户设置的权限。