问题标签 [django-permissions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django-guardian - 在哪里分配对象创建的默认权限
我正在启动一个具有复杂权限结构的应用程序,这将不可避免地由用户自己管理。我在模型中有以下权限:
这些将使用 Django-guardian 在对象级别进行管理,我正在使用自定义 mixins 来处理所有各种组合和功能。
“创建者”权限分配给对象的初始创建者,他们可以通过基于电子邮件的邀请系统将其他权限分配给用户。
我的问题围绕着为创建对象分配创建者权限的选项。
到目前为止我想到的一些方法:
保存后在视图中分配
一般来说,我更喜欢将这些类型的事件排除在我的观点之外。
覆盖保存()
这种方法的问题是我必须授予对 User 对象的保存访问权限,这意味着还要覆盖init以设置 self.request = request。
post_save 信号
我知道我可以利用这个信号,但与前两个相比,我还没有尝试过实现它。
希望这能提供足够的洞察力来了解我在哪里做的事情。
我很想知道这些方法中最好的方法是什么,或者,如果它们都是坏主意,那么替代实现可能是什么。
谢谢,
京东
django - 更好地使用第 3 方行级权限应用程序或过滤 Django 视图中的查询结果?
我正在编写一个涉及创建文档的 Django 应用程序。我有几个要求:
- 检查用户是否能够查看任何文档。
- 如果允许用户查看文档,则只允许他们查看他们有权查看的文档。
我提出了两种解决方案,想知道一种在哲学/实践上是否比另一种更好。
我提出的两个解决方案是:
解决方案一(使用第三方 Django-Guardian)
Models.py
views.py
我看到的第一个解决方案的缺点是每次创建对象时都必须显式设置权限,而且我必须两次访问数据库:一次检查权限,再次检索文档对象。
解决方案二(使用内置的Django权限)
Models.py
views.py
我看到解决方案一的缺点是我必须进行两项检查,一项是查看他们是否能够查看文档,另一项是查看他们是否可以查看特定文档。这样做的好处是,如果我有一个管理员希望能够查看所有文档,我不需要明确授予每个文档的权限;我可以给他“查看文档”的权限。
似乎这两种解决方案都有其优点和缺点。有没有理论/实践更好的?
django - 在 Django UserProfile 模型中继承组权限
假设我有一个项目,我事先知道我将只有三个用户组。我可以提前从 GroupParent 继承定义它们,然后使用这些组选择向我的 UserProfile 添加一个字段吗?这基本上是我想做的:
这甚至是一种合理的方法,还是应该在构建应用程序后(或在构建应用程序时)放弃并设置组+权限?
另外......使用 django-guardian 与 django 的默认权限功能相比有什么优势,如果我打算将它与这些模型一起使用,我应该记住什么?谢谢!
django - 如何在 Django 中为用户设置权限(不使用管理员)?
我是 Django 新手,我想在不使用模板中的管理员的情况下设置权限。
django - 如何在不定义内容类型或模型的情况下使用 Django 权限?
我想使用基于权限的系统来限制我的 Django 应用程序中的某些操作。这些操作不需要与特定模型相关(例如访问应用程序中的部分、搜索...),因此我不能直接使用库存权限框架,因为Permission
模型需要引用已安装的内容类型。
我可以编写自己的权限模型,但是我必须重写 Django 权限中包含的所有好东西,例如:
- 为用户和组分配权限的可能性。
permission_required
装饰师。User.has_perm
和相关的用户方法。- 模板
perms
变量。 - ...
我检查了一些应用程序,例如django-authority和django-guardian,但它们似乎通过允许每个对象的权限来提供与模型系统更加耦合的权限。
有没有办法在没有为项目定义任何模型(除了User
和Group
)的情况下重用这个框架?
django - Django prefetch_related 和多对多对多关系
我有这些模型:
我想读取最多 2 个 SELECTS 的所有用户权限('permissions' 和 'roles__permissions')。
如果我尝试添加prefetch_related('permissions', 'roles__permissions')
到 UserProfileManager 我得到 3 个选择(用于权限、角色和角色__权限)
怎么做?
django - 自定义用户的管理面板权限仅读取(不删除,编辑或添加)
我希望最终用户使用管理面板来查看创建的对象,但我不希望他添加-删除或编辑任何创建的对象。但在 django 管理面板用户设置中,只有添加、删除或编辑权限。有没有办法做到这一点 ?
django - Django 权限建议
实际上,在我的 Django 1.5 项目中,我正处于十字路口,在向右或向左转之前需要一些社区建议。
这是我的模型文章模型
和我的区域模型
每篇文章都在一个地理“区域”中。
我所有的用户也依赖于同一个“区域”,并且可以编辑/添加/删除与用户属于同一“区域”的文章。
路径#1:
我必须与 django-guardian 合作。从长远来看,它会付出代价还是矫枉过正?
路径#2:
我只需要设置 ForeignKey CustomUser Model <-> Zone Model <-> Article Model。然后在继续之前检查每个视图是否 CustomUser.Zone == Article.Zone。
路径#3:
你的来电。
django - Django外键权限
我想添加另一个字段,required_permission
该字段应该是权限的外键。该字段定义应该是什么样的?
这背后的原因是在模板中,我可以使用这样的东西(伪代码)