9

目前我正在寻找在 Django 中实现访问控制。我已经阅读了有关内置权限的信息,但它并不关心每个对象。例如,我想要“只有创建者可以删除他自己的项目”之类的权限。所以我读到了 django-guardian。话又说回来,在考虑之后,可能很难管理和检查约束是否发生变化。

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

这让我开始考虑在后一种情况下使用 contrib 的许可,在前一种情况下使用 django-rules。我的问题是,管理这两个权限框架有多容易?例如,我有不同的用户组。我担心管理员在管理系统中添加特定权限(以允许访问视图)的重叠场景,认为这应该就足够了,但结果却受到规则设置的约束的限制。

我相信这是一个常见的案例,我根据您的经验虚心寻求您的意见和建议。

4

1 回答 1

1

如果您通过 Django 管理站点执行此操作,则可以覆盖诸如has_delete_permission() 之类的方法。这些获取请求和对象作为参数,因此您可以使用它来设置诸如“用户 X 只能删除他自己的对象”之类的规则。

于 2012-03-08T15:53:34.723 回答