From 5d08b4293daa0f6f47203e77285be9db492998e4 Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Fri, 4 Mar 2022 11:21:46 +0100 Subject: [PATCH] adding token authentication to ATDB-LDV https://support.astron.nl/jira/browse/SDC-530 --- atdb/atdb/settings/base.py | 4 ++++ .../taskdatabase/templates/taskdatabase/index.html | 2 +- atdb/taskdatabase/urls.py | 2 ++ atdb/taskdatabase/views.py | 14 +++++++++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/atdb/atdb/settings/base.py b/atdb/atdb/settings/base.py index e5329724..c8fe98fd 100644 --- a/atdb/atdb/settings/base.py +++ b/atdb/atdb/settings/base.py @@ -24,6 +24,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', + 'rest_framework.authtoken', 'corsheaders', 'django_filters', 'django_extensions', @@ -72,6 +73,9 @@ REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ], + 'DEFAULT_AUTHENTICATION_CLASSES': [ + 'rest_framework.authentication.TokenAuthentication', + ], 'DEFAULT_FILTER_BACKENDS': ( 'django_filters.rest_framework.DjangoFilterBackend', ), diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index c4d19f02..2fa718cc 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -34,7 +34,7 @@ {% include 'taskdatabase/pagination.html' %} </div> </div> - <p class="footer"> Version 1.0.0 (11 feb 2021 - 15:00) + <p class="footer"> Version 1.0.0 (4 mar 2021 - 11:00) </div> diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index e881851e..744fa7e2 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -92,4 +92,6 @@ urlpatterns = [ path('tasks/<int:pk>/hold/<hold_it>/<page>', views.Hold, name='task-hold-resume'), path('tasks/<int:pk>/hold/<hold_it>', views.Hold, name='task-hold-resume'), path('tasks/<int:pk>/query-hold/<hold_it>/<query_params>', views.HoldQuery, name='query-hold-resume'), + + path('hello/', views.HelloView.as_view(), name='hello'), ] diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index 3161ae9e..37456f44 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -10,6 +10,9 @@ from django.http import QueryDict from rest_framework import generics, pagination from rest_framework.response import Response +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework.permissions import IsAuthenticated import django_filters from django_filters import rest_framework as filters @@ -522,7 +525,6 @@ class TaskListViewAPI(generics.ListCreateAPIView): """ model = Task queryset = Task.objects.all().order_by('-priority', 'id') - # serializer_class = TaskSerializer # using the Django Filter Backend - https://django-filter.readthedocs.io/en/latest/index.html filter_backends = (filters.DjangoFilterBackend,) @@ -1004,3 +1006,13 @@ class GetUniqueValuesForKey(generics.ListAPIView): return Response({ 'error': str(error) }) + +# 4 mar 2022 +# this is a test class to test token authentication +# can be removed if it all also works in production +class HelloView(APIView): + permission_classes = (IsAuthenticated,) + queryset = Task.objects.all() + def get(self, request): + content = {'message': 'Hello, World!'} + return Response(content) \ No newline at end of file -- GitLab