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

标签 django django-permissions

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

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

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

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

最佳答案

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

关于django - 比较 django 权限并使用 django 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620471/

相关文章:

django-object-permissions 与 django-guardian 与 django-authority

python Socket.IO 客户端,用于向 TornadIO2 服务器发送广播消息

django-permissions - 如何在 django Guardian 中获取对象具有特定权限的所有用户?

django - 无法从 dockerized 应用程序连接到 docker 中的 postgres 服务器

python - Django 重定向到不在同一个应用程序中的 View

django - 如何在不定义内容类型或模型的情况下使用 Django 权限?

Django 2.1 查看权限

django - 无法设置 ImageField url 属性

mysql - 在多个工作人员上分发推送通知