diff --git a/SAS/TMSS/src/tmss/tmssapp/views.py b/SAS/TMSS/src/tmss/tmssapp/views.py index 8dabf0b06f1967e925ea8fac41e80afb84e31387..a9a8d761583eb90dca7741e3f49b9201ccd32b3e 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 dda3767daec991e0fe14e9f8330270c2249b8ef3..738871e8a6c9fe4343503eed4fb483b014638ac3 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'),