Restrict list of events

This commit is contained in:
Raphael Michel
2018-09-25 10:54:36 +02:00
parent ec58ab07b6
commit 304ad4e3db
+5 -3
View File
@@ -12,7 +12,9 @@ from pretix.api.serializers.event import (
TaxRuleSerializer, TaxRuleSerializer,
) )
from pretix.api.views import ConditionalListView from pretix.api.views import ConditionalListView
from pretix.base.models import Event, ItemCategory, TaxRule, TeamAPIToken from pretix.base.models import (
Device, Event, ItemCategory, TaxRule, TeamAPIToken,
)
from pretix.base.models.event import SubEvent from pretix.base.models.event import SubEvent
from pretix.helpers.dicts import merge_dicts from pretix.helpers.dicts import merge_dicts
@@ -73,7 +75,7 @@ class EventViewSet(viewsets.ModelViewSet):
filterset_class = EventFilter filterset_class = EventFilter
def get_queryset(self): def get_queryset(self):
if isinstance(self.request.auth, TeamAPIToken): if isinstance(self.request.auth, (TeamAPIToken, Device)):
qs = self.request.auth.get_events_with_any_permission() qs = self.request.auth.get_events_with_any_permission()
elif self.request.user.is_authenticated: elif self.request.user.is_authenticated:
qs = self.request.user.get_events_with_any_permission(self.request).filter( qs = self.request.user.get_events_with_any_permission(self.request).filter(
@@ -224,7 +226,7 @@ class SubEventViewSet(ConditionalListView, viewsets.ReadOnlyModelViewSet):
def get_queryset(self): def get_queryset(self):
if getattr(self.request, 'event', None): if getattr(self.request, 'event', None):
qs = self.request.event.subevents qs = self.request.event.subevents
elif isinstance(self.request.auth, TeamAPIToken): elif isinstance(self.request.auth, (TeamAPIToken, Device)):
qs = SubEvent.objects.filter( qs = SubEvent.objects.filter(
event__organizer=self.request.organizer, event__organizer=self.request.organizer,
event__in=self.request.auth.get_events_with_any_permission() event__in=self.request.auth.get_events_with_any_permission()