mixins.py 文件源码

python
阅读 33 收藏 0 点赞 0 评论 0

项目:fieldsight-kobocat 作者: awemulya 项目源码 文件源码
def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            if request.group.name == "Super Admin":
                return super(ReviewerMixin, self).dispatch(request, *args, **kwargs)
            elif request.group.name == "Organization Admin":
                pk = self.kwargs.get('pk', False)
                if not pk:
                    return super(ReviewerMixin, self).dispatch(request, *args, **kwargs)
                else:
                    site = Site.objects.get(pk=pk)
                    organization = site.project.organization
                    if organization == request.organization:
                        return super(ReviewerMixin, self).dispatch(request, *args, **kwargs)
            elif request.role.group.name in USURPERS['Reviewer']:
                pk = self.kwargs.get('pk', False)
                if not pk:
                    return super(ReviewerMixin, self).dispatch(request, *args, **kwargs)
                else:
                    site = Site.objects.get(pk=pk)
                    if site.project == request.project:
                        return super(ReviewerMixin, self).dispatch(request, *args, **kwargs)
        raise PermissionDenied()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号