Add API Authentication mechanism
This commit is contained in:
parent
a71042335a
commit
6617c5f7a3
|
@ -1,12 +1,14 @@
|
||||||
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
|
||||||
|
|
||||||
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
|
||||||
from colloscope.models import *
|
from colloscope.models import *
|
||||||
from colloscope.serializers import *
|
from colloscope.serializers import *
|
||||||
|
|
||||||
|
|
||||||
class SchoolViewset(ReadOnlyModelViewSet):
|
class SchoolViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
serializer_class = SchoolSerializer
|
serializer_class = SchoolSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return School.objects.all()
|
return School.objects.all()
|
||||||
|
@ -14,6 +16,7 @@ class SchoolViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class ClassViewset(ReadOnlyModelViewSet):
|
class ClassViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = ClassSerializer
|
serializer_class = ClassSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Class.objects.all()
|
return Class.objects.all()
|
||||||
|
@ -21,6 +24,7 @@ class ClassViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class TermViewset(ReadOnlyModelViewSet):
|
class TermViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = TermSerializer
|
serializer_class = TermSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Term.objects.all()
|
return Term.objects.all()
|
||||||
|
@ -28,6 +32,7 @@ class TermViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class SubjectViewset(ReadOnlyModelViewSet):
|
class SubjectViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = SubjectSerializer
|
serializer_class = SubjectSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Subject.objects.all()
|
return Subject.objects.all()
|
||||||
|
@ -35,6 +40,7 @@ class SubjectViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class GroupTypeViewset(ReadOnlyModelViewSet):
|
class GroupTypeViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = GroupTypeSerializer
|
serializer_class = GroupTypeSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return GroupType.objects.all()
|
return GroupType.objects.all()
|
||||||
|
@ -42,6 +48,7 @@ class GroupTypeViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class GroupViewset(ReadOnlyModelViewSet):
|
class GroupViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = GroupSerializer
|
serializer_class = GroupSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Group.objects.all()
|
return Group.objects.all()
|
||||||
|
@ -49,6 +56,7 @@ class GroupViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class StudentViewset(ReadOnlyModelViewSet):
|
class StudentViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = StudentSerializer
|
serializer_class = StudentSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Student.objects.all()
|
return Student.objects.all()
|
||||||
|
@ -56,6 +64,7 @@ class StudentViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class ColleurViewset(ReadOnlyModelViewSet):
|
class ColleurViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = ColleurSerializer
|
serializer_class = ColleurSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Colleur.objects.all()
|
return Colleur.objects.all()
|
||||||
|
@ -63,6 +72,7 @@ class ColleurViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class SlotViewset(ReadOnlyModelViewSet):
|
class SlotViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = SlotSerializer
|
serializer_class = SlotSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Slot.objects.all()
|
return Slot.objects.all()
|
||||||
|
@ -70,6 +80,7 @@ class SlotViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class ColleViewset(ReadOnlyModelViewSet):
|
class ColleViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = ColleSerializer
|
serializer_class = ColleSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Colle.objects.all()
|
return Colle.objects.all()
|
||||||
|
@ -77,6 +88,7 @@ class ColleViewset(ReadOnlyModelViewSet):
|
||||||
|
|
||||||
class CalendarLinkViewset(ReadOnlyModelViewSet):
|
class CalendarLinkViewset(ReadOnlyModelViewSet):
|
||||||
serializer_class = CalendarLinkSerializer
|
serializer_class = CalendarLinkSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return CalendarLink.objects.all()
|
return CalendarLink.objects.all()
|
||||||
|
|
|
@ -18,6 +18,10 @@ from django.contrib import admin, auth
|
||||||
from django.urls import include, path
|
from django.urls import include, path
|
||||||
from django.contrib.staticfiles import views as vstatic
|
from django.contrib.staticfiles import views as vstatic
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
|
from rest_framework_simplejwt.views import (
|
||||||
|
TokenObtainPairView,
|
||||||
|
TokenRefreshView,
|
||||||
|
)
|
||||||
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
|
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
|
||||||
|
|
||||||
from colloscope.views import home_redirect
|
from colloscope.views import home_redirect
|
||||||
|
@ -40,9 +44,11 @@ router.register("calendarlink", CalendarLinkViewset, basename='calendarlink')
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', home_redirect, name="home"),
|
path('', home_redirect, name="home"),
|
||||||
path('api-auth/', include('rest_framework.urls')),
|
path('api-auth/', include('rest_framework.urls')),
|
||||||
path("api/", include(router.urls)),
|
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||||
|
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||||
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
|
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
|
||||||
path('api/doc/', SpectacularSwaggerView.as_view(url_name='schema'), name='api-doc'),
|
path('api/doc/', SpectacularSwaggerView.as_view(url_name='schema'), name='api-doc'),
|
||||||
|
path("api/", include(router.urls)),
|
||||||
|
|
||||||
path("oauth2/", include('oauth2_provider.urls', namespace='oauth2_provider')),
|
path("oauth2/", include('oauth2_provider.urls', namespace='oauth2_provider')),
|
||||||
path("favicon.ico", lambda req: vstatic.serve(req, "favicon.ico")),
|
path("favicon.ico", lambda req: vstatic.serve(req, "favicon.ico")),
|
||||||
|
|
|
@ -17,6 +17,7 @@ django-cors-headers==4.3.1
|
||||||
django-oauth-toolkit==2.3.0
|
django-oauth-toolkit==2.3.0
|
||||||
django-smtp-ssl==1.0
|
django-smtp-ssl==1.0
|
||||||
djangorestframework==3.15.1
|
djangorestframework==3.15.1
|
||||||
|
djangorestframework-simplejwt==5.3.1
|
||||||
drf-spectacular==0.27.2
|
drf-spectacular==0.27.2
|
||||||
fonttools==4.51.0
|
fonttools==4.51.0
|
||||||
fpdf2==2.7.8
|
fpdf2==2.7.8
|
||||||
|
@ -37,6 +38,7 @@ pillow==10.3.0
|
||||||
pyasn1==0.6.0
|
pyasn1==0.6.0
|
||||||
pyasn1_modules==0.4.0
|
pyasn1_modules==0.4.0
|
||||||
pycparser==2.22
|
pycparser==2.22
|
||||||
|
PyJWT==2.8.0
|
||||||
pyOpenSSL==24.1.0
|
pyOpenSSL==24.1.0
|
||||||
python-dateutil==2.9.0.post0
|
python-dateutil==2.9.0.post0
|
||||||
pytz==2024.1
|
pytz==2024.1
|
||||||
|
|
Loading…
Reference in New Issue