在django中混合了系统级和对象级权限



我使用django 1.6与REST。我试图将对象级别以及系统级别的权限合并到我的应用程序中。在阅读了一些之后,我发现django-gurdian是最好的方法(因为它与所有其他应用程序都很好地配合)。

我有点困惑,虽然系统级权限和对象级权限是如何一起处理的。例如,

class Item(models.Model):
    ...
    class Meta:
        permissions = (
            ("item_create", "Can create an item") , # System privilege
            ("item_update", "Can update the item"), 
            ("item_delete", "Can delete the item"),
            ("item_read"  , "Can view the item")
        )

当我意识到我不完全确定如何测试item_create时,我开始写我的permissions.py,因为我还没有一个项目实例(我也不应该为系统特权)。

欣赏任何关于它们的区别和/或如何管理它们以及它们如何一起发挥作用的话语。

  1. 关于Guardian权限,请参阅django- Guardian文档:http://django-guardian.rtfd.org/
  2. Django系统权限见:https://docs.djangoproject.com/en/dev/topics/auth/default/#default-permissions

您可能必须定义自己的方法来完成权限检查。伪代码:

if is_system_permission(perm):
    user.has_perm(perm)
else:
    guardian.user_has_perm(object, perm)

欢呼

相关内容

  • 没有找到相关文章

最新更新