django - 比较django权限和使用django规则

时间:2012-03-08 15:45:17

标签: django django-permissions

目前我正在寻找在Django中实现访问控制。我已经阅读了有关内置权限的内容,但它没有考虑每个对象的基础。例如,我想要“只有创建者才能删除自己的项目”这样的权限。所以我读到了django-guardian。然后,在考虑之后,可能难以管理并检查约束是否会发生变化。

我看一下名为django-rules的下一个流行的权限管理应用程序。这似乎符合我的要求。但是,我相信django-rules要求涉及一个模型实例(因此对象级别),即如果我需要一个像“member's area”这样的简单视图,它就不会执行这个功能。

这使我考虑使用后者方案的contrib权限和前者的django规则。我的问题是,管理这两个权限框架有多容易?例如,我有不同的用户组。我担心重叠的情况,管理员在管理系统中添加了一个特定的权限(允许访问视图),认为这应该足够,但结果是由规则设置的约束限制。

我认为这是一个常见的案例,我谦虚地根据您的经验寻求您的建议和建议。

1 个答案:

答案 0 :(得分:1)

如果您通过Django管理网站执行此操作,则可以覆盖has_delete_permission()等方法。这些获取请求和对象作为参数,因此您可以使用它来设置像&#34这样的规则;用户X只能删除自己的对象"。