【问题标题】:User/Group permission class用户/组权限类
【发布时间】:2014-11-22 23:43:25
【问题描述】:

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

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

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

(如果有人想给我全班建设性的 cmets,我也很乐意接受)。

【问题讨论】:

    标签: django django-views


    【解决方案1】:

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

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

    User groups and permissions

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

    【讨论】:

    • 是的,你是对的。我看的不够仔细。我确实需要查看一个界面来更改权限的视图,因为我想遍历每个权限并显示人员/组。但这应该不会太难。
    猜你喜欢
    • 2015-07-16
    • 2012-09-05
    • 2011-03-07
    • 2020-11-04
    • 2013-05-04
    • 1970-01-01
    • 2015-02-10
    • 2018-04-28
    • 2011-08-07
    相关资源
    最近更新 更多