问题标签 [django-guardian]
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 和 django-guardian 对象权限的每个对象的组
我目前正在创建一个结构,其中有属于公司的员工。在这家公司内,我需要能够创建多个组。如果你愿意,排名。您可以将较少的权限分配给较低的等级,而将更多的权限分配给较高的等级。
我想获得对象级别的权限,我注意到 django-guardian 项目给了我我所需要的。它适用于本机用户和组对象,因此我现在正试图找到一种在公司对象中实现本机组对象的方法。
我面临的问题是组中的名称是唯一的。所以如果2家公司添加同一个组,就会出现错误。
我找到了一个在某种程度上可行但对我来说似乎很“hacky”的实现。在我的公司中,我声明了一个引用 Group 的组变量:
CompanyRole 基本上包含组名称以及对公司和组的引用
我用一种方便的方法创建了一个自定义管理器来添加一个新的“公司组”
这是我不太舒服的部分。为了改变 Group 模型上唯一名称的问题,我使用了公司 ID、井号和实际组名的组合以避免冲突。
现在我的问题是:在我的场景中是否有更好的方法,我是否遗漏了什么或者这是完成我需要的好方法?
python - django-guardian 如何让对象继承相关对象的权限?
我有两个模型:
例如,当我在执行 `get_objects_for_user(User, 'appname.view_contact) 但仍保留更改单个联系人权限的选项时,如何让 django 监护人考虑 ContactGroup 权限?(不排除,仅授予查看单个联系人的权限当用户没有整个组的权限时)
django - 如何在 django 的 CreateView 中创建对象后添加 django-guardian 权限?
我得到了使用基本 ModelForm 的简单 CreateView ,我想在can_view
创建此特定对象后为当前用户添加权限。据我了解,必须在保存对象后完成。我应该post_save
为此使用信号吗?请记住,我不想在修改现有对象时触发它。
django - Django在保存对象后授予权限
我有一个包含特定权限的 Django 模型。我希望能够将权限分配给assigned_to field
. 我django-guardian
用来管理权限。
我试图实现自定义保存方法。如果我在保存之前尝试这样做:
我收到一个错误:
如果我在保存后这样做(无论如何我猜这是错误的):
我得到一个Type Error 'ManyRelatedManager' object is not iterable
.
我应该post-save
为此使用信号吗?对于我认为常见的模式,最好的方法是什么?
django - 嵌套路由上的 Django REST 权限
我正在使用带有嵌套路由器扩展的 Django REST 框架。我的一条路线看起来像:companies/$company/locations/$location
where$company
和$location
are slug 变量。
我想允许用户发布到这个 URL:companies/$company/locations/
添加新的位置。我想确保执行 POST 的用户对他正在发布的公司具有更正权限。我目前django-guardian
用于我的对象级权限。POST 消息仅包含新位置的名称,它不包含可以从 URL 推断出的公司名称。在这种情况下,我很难正确执行权限。我一直在从视图集的方法中设置company
新Location
对象的字段,pre_save
但这对于应用权限检查来说为时已晚。
执行此操作的最佳方法是什么?
如果用户确实在 POST 中包含公司,我可以通过将以下内容添加到视图集中来验证公司:
django - 在 django 中混合系统和对象级别的权限
我正在使用带有 REST 的 django 1.6。我正在尝试将对象级别和系统级别权限合并到我的应用程序中。在阅读了一下之后,我发现这django-gurdian
是最好的方法(因为它与所有其他应用程序都很好)。
我对如何一起处理系统级权限和对象级权限感到有些困惑。例如,
permissions.py
当我意识到我不完全确定如何测试时,我开始写我的,item_create
因为我还没有项目实例(我也不应该获得系统特权)。
欣赏有关差异和/或如何管理它们以及两者如何一起玩的任何话。
django - 在 django-guardian 中,我怎样才能让所有对象用户拥有任何权限
在 django-guardian 中,我怎样才能让所有对象用户拥有任何权限(也通过组)。有一个快捷方式可以让所有用户对某个对象拥有任何权限,但我正在搜索给定用户拥有任何权限的所有对象。
django - 在管理面板中限制 ModelChoiceField 选项
我正在创建一个使用管理面板(以及 django-guardian)的投票应用程序,其中模型之间的相关 ForeignKeys 链是:
期望的行为:
- 在修改调查的现有投票时,管理员应该只看到来自该特定调查的选项。
- 添加新投票时,应向管理员显示他们创建的所有调查中的所有选项,格式为“choice.choice_text (survey.question)”。
下面的代码几乎可以让我到达我需要的地方,除了一些事情(按对我的重要性排序):
- 显然,temp_creator 需要调用调查的所有者,即当前登录的用户(request.user?)。
- 编辑个人投票时,我希望选择列表仅限于投票所属的特定调查。
- 通过管理面板添加新投票时,我希望所有选项都可见,但我想将survey.question附加到它们,以便用户可以知道他们来自哪个调查,以防调查共享相同的choice_text。
这是我的代码:
python - Django 表单和 django-guardian:显示过滤后的 UserObjectPermissions 列表
我希望管理员能够根据对所述对象可用的权限,将 django-guardian 权限分配/删除给一个人以及它们与项目对象的关系。
屏幕看起来像这样:
该项目在 URL 中提供,视图可以看到。我创建了一个自定义表单,它将项目作为输入,如下所示:
这目前给了我一个 NameError,我想是因为我在方法self
之外使用__init__
。我究竟做错了什么?
django - Django 管理模型 add_view:如何删除“保存并添加另一个”按钮?
通过实现以下代码,我能够删除“保存并添加另一个”和“保存并继续编辑”按钮:
这在我使用 change_view 时效果很好,但是当我添加模型的新实例时,按钮会重新出现。我尝试了以下方法:
但它给了我一个奇怪的 MissingAtrribute 错误——这是回溯:
我正在使用 django-guardian 并想知道这是否会导致我的问题?有谁知道在添加新模型实例时如何从模板的 submit_line 部分摆脱这些烦人的按钮?