From 87e22b44cf3f20e920b9339a76b8eec65c53a44a Mon Sep 17 00:00:00 2001 From: Mario Raciti <mario.raciti@inaf.it> Date: Wed, 16 Dec 2020 11:16:38 +0100 Subject: [PATCH] TMSS-521: Add login view API --- SAS/TMSS/src/tmss/tmssapp/views.py | 24 +++++++++++++++++++++++- SAS/TMSS/src/tmss/urls.py | 3 ++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/SAS/TMSS/src/tmss/tmssapp/views.py b/SAS/TMSS/src/tmss/tmssapp/views.py index 8dabf0b06f1..a9a8d761583 100644 --- a/SAS/TMSS/src/tmss/tmssapp/views.py +++ b/SAS/TMSS/src/tmss/tmssapp/views.py @@ -1,7 +1,7 @@ import os from django.http import HttpResponse, JsonResponse, Http404 -from django.shortcuts import get_object_or_404, render +from django.shortcuts import get_object_or_404, render, redirect from lofar.sas.tmss.tmss.tmssapp import models from lofar.common.json_utils import get_default_json_object_for_schema from lofar.common.datetimeutils import formatDatetime @@ -44,6 +44,28 @@ def index(request): #return render(request, "../../../frontend/frontend_poc/build/index.html") +from django.contrib.auth.views import LoginView as LW +from django.contrib.auth import authenticate, login +class LoginView(LW): + + # def get(self, request, *args, **kwargs): # TODO: Render frontend login + # return render(request, + # os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), '../../frontend', + # 'tmss_webapp/build/index.html')) + + def post(self, request): + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(request, username=username, password=password) + if user is not None: + login(request, user) + # Redirect to homepage. + return redirect(to='index', permanent=True) + else: + # Return an 'invalid login' error message. + return HttpResponse('Invalid credentials!', content_type='text/plain') + + def task_specify_observation(request, pk=None): task = get_object_or_404(models.TaskDraft, pk=pk) return HttpResponse("response", content_type='text/plain') diff --git a/SAS/TMSS/src/tmss/urls.py b/SAS/TMSS/src/tmss/urls.py index dda3767daec..738871e8a6c 100644 --- a/SAS/TMSS/src/tmss/urls.py +++ b/SAS/TMSS/src/tmss/urls.py @@ -16,7 +16,7 @@ Including another URLconf from django.shortcuts import render from django.contrib import admin -from django.contrib.auth.views import LoginView, LogoutView +from django.contrib.auth.views import LogoutView from django.urls import path, re_path from django.conf.urls import url, include from django.views.generic.base import TemplateView, RedirectView @@ -56,6 +56,7 @@ swagger_schema_view = get_schema_view( # use re_path(r'<...>/?') to make trailing slash optional (double entries confuse Swagger) urlpatterns = [ path('admin/', admin.site.urls), + path('login/', views.LoginView.as_view(), name='login'), path('logout/', LogoutView.as_view(), name='logout'), path('docs/', include_docs_urls(title='TMSS API')), re_path(r'^swagger(?P<format>\.json|\.yaml)$', swagger_schema_view.without_ui(cache_timeout=0), name='schema-json'), -- GitLab