我的 Django Rest 框架和权限有问题。例如,DRF 不允许我对我的观点拥有多个权限。
如果我以管理员用户身份登录 API,我可以使用此 mixin 进行访问:
class PermissionMixin(object):
permission_classes = (permissions.IsAdminUser)
现在,如果我添加第二个权限混合:
class PermissionMixin(object):
permission_classes = (permissions.IsAdminUser, TokenHasReadWriteScope)
管理员用户被拒绝访问。应该发生的情况是管理员用户和具有令牌的用户都可以访问,但是现在只有 TokenHasReadWriteScope 用户可以访问。
还有其他人遇到过这个问题吗,这是怎么回事?
我需要两种类型的用户都有访问权限。
这就是我的观点:
class SomeList(PermissionMixin, generics.ListCreateAPIView)
queryset = Award.objects.all()
serializer_class = AwardSerializer
PS TokenHasReadWriteScope 来自django-oauth-工具包 https://django-oauth-toolkit.readthedocs.org/en/0.4.1/rest-framework/permissions.html
With Django Rest Framework 3.9 及以上版本 https://www.django-rest-framework.org/community/3.9-announcement/#composable-permission-classes,它们内置了对可组合权限类的支持,您可以立即使用和/或运算符:
permission_classes = [IsAuthenticated & (ReadOnly | IsAdmin)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)