diff --git a/src/pretixcontrol/middleware.py b/src/pretixcontrol/middleware.py index cb5370d77e..d6e5d864ac 100644 --- a/src/pretixcontrol/middleware.py +++ b/src/pretixcontrol/middleware.py @@ -49,11 +49,11 @@ class PermissionMiddleware: "organizer", "date_from").prefetch_related("organizer") if 'event.' in url_name and 'event' in url.kwargs: try: - request.event = Event.objects.current.get( + request.event = Event.objects.current.filter( slug=url.kwargs['event'], permitted__id__exact=request.user.id, organizer__slug=url.kwargs['organizer'], - ) - except Event.DoesNotExist: + ).select_related('organizer')[0] + except IndexError: return HttpResponseNotFound(_("The selected event was not found or you " "have no permission to administrate it.")) diff --git a/src/pretixpresale/middleware.py b/src/pretixpresale/middleware.py index 28886764d8..75b2e63bea 100644 --- a/src/pretixpresale/middleware.py +++ b/src/pretixpresale/middleware.py @@ -19,7 +19,10 @@ class EventMiddleware: if url_namespace != 'presale': return if 'event.' in url_name and 'event' in url.kwargs: - request.event = Event.objects.current.get( - slug=url.kwargs['event'], - organizer__slug=url.kwargs['organizer'], - ) + try: + request.event = Event.objects.current.filter( + slug=url.kwargs['event'], + organizer__slug=url.kwargs['organizer'], + ).select_related('organizer')[0] + except IndexError: + return HttpResponseNotFound() # TODO: Provide error message