def dispatch(self, request, *args, **kwargs): try: self.catalog = Catalog.objects.get(url_name=kwargs['catalog_name']) except Catalog.DoesNotExist: raise ProblemDetailException(request, _("Catalog not found"), status=HTTPStatus.NOT_FOUND) except KeyError as e: raise ProblemDetailException(request, _("Internal server error"), status=HTTPStatus.NOT_FOUND, previous=e) if request.method not in self.UNSECURED_METHODS and not self.catalog.is_public: self._authenticate(request) return View.dispatch(self, request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): self.related_fields = self.related_fields or [] self.context_rel = {} getparams = [] self.getparams = '' for related in self.related_fields: if self.request.GET.get(related, False) is not False: Classrelated = utils.get_related_class_field( self.model, related) self.context_rel[related] = get_object_or_404( Classrelated, pk=self.request.GET.get(related, '0')) getparams.append("%s=%s" % ( related, str(self.context_rel[related].pk))) if getparams: self.getparams = "?" + "&".join(getparams) for perm in self.perms: if not request.user.has_perm(perm): return HttpResponseForbidden() return View.dispatch(self, request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): self.related_fields = self.related_fields or [] self.context_rel = {} getparams = [] self.getparams = '' for related in self.related_fields: pk = self.request.GET.get(related, '') if pk: Classrelated = utils.get_related_class_field( self.model, related) self.context_rel[related] = get_object_or_404(Classrelated, pk=pk) getparams.append("%s=%s" % (related, str(self.context_rel[related].pk))) if getparams: self.getparams = "&".join(getparams) for perm in self.perms: if not self.validate_user_perms(request.user, perm, self.view_type): return HttpResponseForbidden() return View.dispatch(self, request, *args, **kwargs)
def dispatch(self, request, *args, **kwargs): self.related_fields = self.related_fields or [] self.context_rel = {} getparams = [] self.getparams = '' for related in self.related_fields: pk = self.request.GET.get(related, '') if pk: Classrelated = utils.get_related_class_field( self.model, related) self.context_rel[related] = get_object_or_404( Classrelated, pk=pk) getparams.append("%s=%s" % ( related, str(self.context_rel[related].pk))) if getparams: self.getparams = "&".join(getparams) for perm in self.perms: if not request.user.has_perm(perm): template = loader.get_template('403.html') return HttpResponseForbidden(template.render(request=request)) return View.dispatch(self, request, *args, **kwargs)
def dispatch_to(self, step: View): """Dispatch to a view expected by this pipeline. A subclass may override this if its views take other parameters. """ return step.dispatch(request=self.request, pipeline=self)
def dispatch(self, request, *args, **kwargs): return View.dispatch(self, request, *args, **kwargs)
def dispatch_to(self, step: View): return step.dispatch(request=self.request, helper=self)