- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够设置 django-guardian
和我的 django-rest-framework
项目为 example in drf docs ,但我未能实现我想要的行为。有人可以指出我是否做错了什么,或者我想要的东西不能用 guardian
完成吗? ?
设置
设置.py
INSTALLED_APPS = (
...
'guardian',
'simple',
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'guardian.backends.ObjectPermissionBackend',
)
'DEFAULT_PERMISSION_CLASSES': (
'infrastructure.permissions.DjangoObjectPermissions',
)
from rest_framework import permissions
class DjangoObjectPermissions(permissions.DjangoObjectPermissions):
"""
Similar to `DjangoObjectPermissions`, but adding 'view' permissions.
"""
perms_map = {
'GET': ['%(app_label)s.view_%(model_name)s'],
'OPTIONS': ['%(app_label)s.view_%(model_name)s'],
'HEAD': ['%(app_label)s.view_%(model_name)s'],
'POST': ['%(app_label)s.add_%(model_name)s'],
'PUT': ['%(app_label)s.change_%(model_name)s'],
'PATCH': ['%(app_label)s.change_%(model_name)s'],
'DELETE': ['%(app_label)s.delete_%(model_name)s'],
}
class Event(models.Model):
name = models.CharField(max_length=255)
min_age = models.IntegerField()
def __str__(self):
return self.name
class Meta:
permissions = (('view_event', 'Can view event'),)
class EventViewSet(viewsets.ModelViewSet):
queryset = models.Event.objects.all()
serializer_class = serializers.EventSerializer
filter_backends = (filters.DjangoObjectPermissionsFilter,)
Events
名单返回者 EventViewSet.list
仅包含请求用户可以查看的对象(请求用户具有 django.auth view_event
权限或 ('view_event', event_object)
. EventViewSet.details
返回 Event
仅当请求用户具有 view_event
时才实例许可或 ('view_event', event_object)
允许。 view_event
和监护人许可('view_event', event_obj)
,可以访问路由list
(获取所有条目)和 details
与 event_obj
相关联. view_event
,但有监护人权限('view_event', event_obj)
,他们在所有路由中都会收到 403(包括与他们有权限的 event_obj 关联的 details
路由)。 view_event
但没有 ('view_event', event_obj)
,他们可以访问路由list
(查看所有条目),但他们在 details
中收到 404路由,不管正在访问的条目。 最佳答案
好的,原来所有具有权限类的 View DjangoObjectPermissions
如果用户拥有 ,将只允许用户查看给定资源模型级和对象级 权限。我的用户能够列出所有对象,但不能检索任何对象,这是因为 known bug这已经得到纠正,但目前尚未发布。
关于django-rest-framework - 使用 DjangoObjectPermissionsFilter 使用 django-guardian 过滤用户的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713455/
我正在启动一个具有复杂权限结构的应用程序,这将不可避免地由用户自己管理。我在模型中有以下权限: class Meta: permissions = ( ('can_view', 'Vi
我想知道是否可以在没有用户模型的情况下使用 Guardian,以及如何使用它。 我只将 Phoenix 用于服务器、微型 API 和 channel 。我在浏览器中有一个带有 PouchDB 的数据库
谁能推荐一个使用 django-guardian 的好的开源应用程序?我在理解 API 方面没有问题,但我很想看到一个示例来了解实现最佳实践(数据库设计等) 最佳答案 如果您克隆 django-gua
我正在使用 django-guardian 来检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。在我的 models.py 中,我扩展了这样的用户模型: enter image descript
我正在使用 django-guardian 来检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。在我的 models.py 中,我扩展了这样的用户模型: enter image descript
尝试搜索监护人模式,但我找不到任何可以回答我问题的东西,所以我又来了。在我正在阅读的书中,作者使用了一行他称之为“监护人模式”的代码,但我并不真正理解它是如何工作的。这是示例,如果有人能向我解释一下,
我已按照 django-guardian 文档中的用户指南来设置 django-guardian。这使我能够控制某个组是否可以查看特定类(class)。这是 django-guardian 文档中的示
我有两个模型: class ContactGroup(models.Model): name = models.CharField(max_length=40) class Meta:
我有一个父类(super class),它带有带有 finalize() 方法的伸缩构造函数。为了防止子类忘记调用 super.finalize,我编写了一个终结器守护程序(EJ Item 7),就像
我已将 django-guardian 的行级权限添加到我的项目中。 从设置来看,似乎一切正常: 已创建监护人特定表(guardian_groupobjectpermission、guardian_u
我正在使用 django-guardian为了管理每个对象的权限。 对于给定的用户,我授予对一个对象的所有权限: joe = User.objects.get(username="joe") myta
根据Akka docs on the System Guardian , 如果顶级 Actor 抛出 Exception ,它将无限期地重新启动(有 2 个异常(exception) - 没有双关语)
所以我有来自 Guardian API 开放平台的 JSON 格式的数据,我想在 jquery 中解析它,目前我一直在尝试将结果显示到我的 HTML div 上。 数据格式如下:Guardian JS
我正在开发一个实现用户身份验证的网站(使用 Comeonin 和 Guardian)。 我正在实现电子邮件验证。我想我可以利用 Guardian 中的功能来使用 JWT token 生成 url。根据
我在从 The Guardian 的新闻 API 获取文章文本时遇到问题。我有一个类似这样的网址:http://content.guardianapis.com/search?section=tech
我正在创建一个应用程序,它从《卫报》获取新闻。该文档不清楚依赖关系。任何地方都没有这方面的信息。预先感谢您 https://github.com/matarrese/content-api-the-g
当我在 Django 中创建用户时,他没有权限: In [7]: u = User.objects.create(username='aoeu') In [12]: u.user_permission
我正在寻找一个简单的示例,说明如何以与 Guardian 应用程序(包括左侧图像)相同的方式在屏幕上显示数据,我从 php 页面中提取数据,如屏幕截图所示以下。我在互联网上找不到任何符合此描述的示例。
我目前正在对所有对象进行非常笨拙的循环,但这会变得很慢: videos = Video.objects.all() video_list = [] for video in videos: c
有 from guardian.shortcuts import get_objects_for_user 但是关于 from guardian.shortcuts import get_users_
我是一名优秀的程序员,十分优秀!