问题标签 [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.

0 投票
2 回答
3303 浏览

python - ImportError:没有名为监护人的模块

我是 Django 新手,所以通常我是大多数问题的原因,但我不知道为什么 django-guardian 1.3 应用程序无法安装。我在虚拟环境中使用 Django 1.7,我的操作系统是 Windows 8.1。

我遵循了 pythonhosted.org/django-guardian/installation.html 上的安装说明和pythonhosted.org/django-guardian/configuration.html上的配置,但是当我尝试运行程序时出现错误。

我在我的 settings.py 中添加了“监护人”、ANONYMOUS_USER_ID 和后端

IMGUR 上提供的错误图片

Django-guardian 似乎已安装在我的虚拟环境中,但仍未找到。任何想法我可能做错了什么?(或其他关于 Django 中每个对象权限的建议?)谢谢!

更新:我将问题缩小到 virtualenv。当我在不使用 virtualenv 的情况下安装模块时,django 会像它应该的那样找到它们。我仍然不确定我到底做错了什么,但考虑到我目前只在做一个项目,这暂时有效。

0 投票
1 回答
1380 浏览

django - 在 django TestCase 中检查权限

我正在尝试在 django1.8 应用程序中测试我的 create_user 视图。我在 TestCase 中有以下内容:

当我使用实际的应用程序创建用户然后打开外壳检查 has_perm('foo_app.add_bar') 时,它是真的。测试中出了什么问题?

我正在使用 django-guardian 获取对象权限。我settings.AUTHENTICATION_BACKENDS的是:

0 投票
1 回答
685 浏览

django - 如何在 Django 的夹具中引用 ContentType?

我正在使用django-guardian为 Django 项目编写测试。权限夹具如下所示:

通过 id引用content_type和引用是否安全?permission还是 ids 会改变(即当我添加额外的权限/模型时)?

引用自动加载的对象的最佳方法是什么?

0 投票
1 回答
272 浏览

django - 使用监护人的快捷方式 assign_perm 分配权限导致“NoneType”对象没有属性“对象”

我的 Django 项目中有两个应用程序,假设它是 appA 和 appB。这些应用程序是通过pip install. 他们两个在他们的模型中都有额外的权限:

appA 有:

appB 有:

我在我的项目中安装了这两个应用程序,并尝试创建他们拥有的模型的一些实例。一切正常(对象已创建并保存到数据库),直到权限分配步骤发生以下错误:

我检查了发生错误的确切位置,它在 django-guardian 内部。垃圾收集器似乎清理了本地上下文,将所有导入设置为无:

更重要的是,当我从 INSTALLED_APPS 中删除一个应用程序(例如 appA)时,另一个工作正常,即所有权限都已设置。

我不知道这个问题的根源是什么,如果它是在我的应用程序中,在监护人中还是在完全其他应用程序中?

0 投票
1 回答
2130 浏览

django-rest-framework - 使用 DjangoObjectPermissionsFilter 使用 django-guardian 过滤用户对象

我能够将django-guardian我的django-rest-framework项目设置为drf docs 中的示例,但我未能实现我想要的行为。有人可以指出我做错了什么或者我想要的东西无法完成guardian吗?

设置

设置.py

基础设施.permissions.py

模型.py

视图.py

预期行为

  • Events返回的列表EventViewSet.list仅包含请求用户可以查看的对象(请求用户具有 django.authview_event权限或('view_event', event_object).
  • EventViewSet.details仅当请求用户具有权限或权限时才返回Event实例。view_event('view_event', event_object)

实际行为

  • 如果用户拥有 django auth 权限view_event和 Guardian 权限('view_event', event_obj),它可以访问路由list(获取所有条目)并detailsevent_obj.
  • 如果用户没有 auth 权限view_event,但有 Guardian 权限,他们会在所有路由(包括与他们有权限的 event_obj 关联('view_event', event_obj)的路由)中收到 403 。details
  • 如果用户有view_event但没有('view_event', event_obj),他们可以访问路由(查看所有条目),但无论访问的条目如何list,他们都会在路由中收到 404 。details

谢谢!

0 投票
1 回答
212 浏览

python - 如何让 django-guardian 在管理面板中反映我的应用程序?

即使使用 GuardedModelAdmin,我也看不到 django-guardian 的任何变化。我希望用户只能查看和编辑他允许(不仅仅是拥有,而是允许)的记录。但即使附加所有权限,用户仍然看不到这些行。

在此处输入图像描述

少了什么东西?

0 投票
2 回答
2226 浏览

django - Django rest框架查询集自定义权限

我想在我的 django rest 框架视图上使用 django Guardian 设置自定义权限。我已经成功地实现了它RetrieveModelMixin,但不是ListModelMixin

我有一个看起来像这样的权限类:

我还在这里简化了视图:

我天真地期待的行为:ListModelMixin可以根据 CustomPermhas_object_permission规则自行过滤对象。

但它不是那样工作的。我可以通过编写一个get_queryset方法并应用我的自定义权限规则来做我想做的事,但这似乎不合适而且很糟糕。

有没有更好的办法 ?谢谢 :)

PS:我确定我遗漏了一些东西,我的问题很幼稚,但我看不出是什么。

0 投票
1 回答
20266 浏览

django - 现在如何在 Django 中处理每个对象的权限?

我正要使用django-guardian,直到我在官方文档中遇到以下内容:

https://docs.djangoproject.com/en/stable/topics/auth/customizing/#handling-authorization-in-custom-backends

不仅可以按对象类型设置权限,还可以按特定对象实例设置权限。通过使用 ModelAdmin 类提供的 has_add_permission()、has_change_permission() 和 has_delete_permission() 方法,可以为同一类型的不同对象实例自定义权限。

这是否意味着新版本的 Django 不再需要 django-guardian?

请说清楚。

0 投票
1 回答
215 浏览

python - Django Guardian 权限错误:参数 pk 未传递到视图函数

我有一个名为 Message 的模型,我使用 django-guardian 获得对象级权限。这个想法是消息实例中的 thefrom_userto_userin 都应该具有can_view_message权限。此功能是显示具有相同消息的消息列表thread_id(创建消息时自动创建)。

此请求的 url 模式: url(r'^messages/([-_a-z0-9]{1,32})/$', message_views.message_thread),

这是消息模型:

我使用 post_create 信号来分配权限:

但是我收到以下错误,但不知道为什么:

任何帮助将不胜感激,非常感谢!

0 投票
3 回答
1540 浏览

django - 创建时检查 Django Rest Framework 权限

为什么django rest框架在创建对象时不检查对象权限?用户应该能够创建他们看不到、更新或删除的对象是没有意义的(无论如何对我来说)。目前我子类化一个视图集

为什么默认情况下不实现?这让我很头疼,我想不出一个原因会这样实现。