diff --git a/apps/MySU/viewsets/news.py b/apps/MySU/viewsets/news.py index f5793cf86c2b84d0d3d383d2c4ea7e127d409734..bcbf25168330266b77e81203d4db3f93b1f73af8 100644 --- a/apps/MySU/viewsets/news.py +++ b/apps/MySU/viewsets/news.py @@ -1,17 +1,21 @@ from guardian.shortcuts import get_objects_for_user +from guardian.shortcuts import Q from rest_framework import viewsets from rest_framework.permissions import BasePermission from rest_framework.permissions import IsAuthenticated from url_filter import filtersets -from apps.MySU.models import News +from apps.MySU.models import News, Association from apps.MySU.serializers.news import NewsSerializer """ ---------------------------------------------------------------------------------------------------------------------- - MEMBERTYPE + NEWS ---------------------------------------------------------------------------------------------------------------------- + GET: Board or Self + PUT/PATCH: Board + POST: Board """ @@ -51,5 +55,8 @@ class NewsViewSet(viewsets.ModelViewSet): filter_class = NewsFilterSet def get_queryset(self): - queryset = News.objects.all() - return queryset + associations = Association.objects.associations_where_user_is_member(self.request.user) + queryset = News.objects \ + .filter(Q(association__in=associations)) + return queryset.distinct() + diff --git a/apps/calendar/viewsets/eventtype.py b/apps/calendar/viewsets/eventtype.py index 5632752108b220c064d3f92547e09966260b99a7..6610c0d438e5fd392dd7303f30d76a4910956bf8 100644 --- a/apps/calendar/viewsets/eventtype.py +++ b/apps/calendar/viewsets/eventtype.py @@ -1,9 +1,11 @@ from guardian.shortcuts import get_objects_for_user +from guardian.shortcuts import Q from rest_framework import viewsets from rest_framework.permissions import BasePermission from rest_framework.permissions import IsAuthenticated from url_filter import filtersets +from apps.MySU.models import Association from apps.calendar.models import EventType from apps.calendar.serializers.eventtype import EventTypeSerializer @@ -39,7 +41,7 @@ class EventTypeFilterSet(filtersets.ModelFilterSet): class EventTypeViewSet(viewsets.ModelViewSet): - queryset = EventType.objects.all() + queryset = EventType.objects.none() serializer_class = EventTypeSerializer permission_classes = (IsAuthenticated, EventTypeHttpPermissions,) http_method_names = ['get', 'post', 'put', 'patch', 'head', 'options'] @@ -47,3 +49,9 @@ class EventTypeViewSet(viewsets.ModelViewSet): ordering_fields = ['slug'] ordering = ['slug'] filter_class = EventTypeFilterSet + + def get_queryset(self): + associations = Association.objects.associations_where_user_is_member(user=self.request.user) + queryset = EventType.objects.filter(Q(association__in=associations)).distinct() + return queryset +