From 20578d3d6604962d7477dec44cf246c40364dc55 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Mon, 11 Dec 2023 19:05:55 -0400
Subject: [PATCH] feat: use Django model permissions for Category,
 FundingCategory, Language, License, LinkType, MusicFocus, Topic annd Type

---
 program/views.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/program/views.py b/program/views.py
index ca61dc3b..5ff357b1 100644
--- a/program/views.py
+++ b/program/views.py
@@ -749,6 +749,7 @@ class ActiveFilterMixin:
     list=extend_schema(summary="List all categories."),
 )
 class APICategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Category.objects.all()
     serializer_class = CategorySerializer
 
@@ -762,6 +763,7 @@ class APICategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all types."),
 )
 class APITypeViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Type.objects.all()
     serializer_class = TypeSerializer
 
@@ -775,6 +777,7 @@ class APITypeViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all topics."),
 )
 class APITopicViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Topic.objects.all()
     serializer_class = TopicSerializer
 
@@ -788,6 +791,7 @@ class APITopicViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all music focuses."),
 )
 class APIMusicFocusViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = MusicFocus.objects.all()
     serializer_class = MusicFocusSerializer
 
@@ -801,6 +805,7 @@ class APIMusicFocusViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all funding categories."),
 )
 class APIFundingCategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = FundingCategory.objects.all()
     serializer_class = FundingCategorySerializer
 
@@ -814,6 +819,7 @@ class APIFundingCategoryViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all languages."),
 )
 class APILanguageViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = Language.objects.all()
     serializer_class = LanguageSerializer
 
@@ -873,6 +879,7 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet):
     list=extend_schema(summary="List all link types."),
 )
 class APILinkTypeViewSet(viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = LinkType.objects.all()
     serializer_class = LinkTypeSerializer
 
@@ -886,5 +893,6 @@ class APILinkTypeViewSet(viewsets.ModelViewSet):
     list=extend_schema(summary="List all license types."),
 )
 class APILicenseViewSet(viewsets.ModelViewSet):
+    permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly]
     queryset = License.objects.all()
     serializer_class = LicenseSerializer
-- 
GitLab