Skip to content
Snippets Groups Projects
Commit facdc591 authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

Merge branch 'fix-login-view' into 'main'

Fix GET access for login view

See merge request !15
parents 64ebf20e d39bb4e7
No related branches found
No related tags found
1 merge request!15Fix GET access for login view
Pipeline #155501 passed
......@@ -5,19 +5,17 @@ from typing import Tuple
import crispy_forms.helper
from django.contrib import messages
from django.contrib.sessions.models import Session
from django.http import HttpResponse
from django.shortcuts import render, redirect, get_object_or_404
from django.shortcuts import render, redirect
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
from django.views.generic import ListView, DetailView, View, DeleteView, UpdateView
from django.views.generic.detail import SingleObjectMixin
from django.contrib.sessions.models import Session
from django.contrib.auth import authenticate, login
from django.contrib.auth.forms import AuthenticationForm
from . import mixins
from assemblies import forms, models, utils
from assemblies.insillyclo_impl import InSillyCloDjangoMessageObserver
from . import mixins
# Create your views here.
......@@ -213,44 +211,3 @@ class JobDownloadView(
traceback.print_exc()
messages.error(request, str(e.__class__) + str(e))
return redirect(request.headers['Referer'])
def loginView(request):
if request.user.is_authenticated:
return redirect("assemblies:home")
if request.method == "POST":
form = AuthenticationForm(data=request.POST or None)
if form.is_valid():
user = form.get_user()
session_key = request.session.session_key
print(f"session = {session_key}")
if session_key:
try:
session = Session.objects.get(session_key=session_key)
models.SimulatorJob.objects.filter(
owning_session=session,
).update(
owner=user,
owning_session=None,
)
models.Assembly.objects.filter(
owning_session=session,
).update(
owner=user,
owning_session=None,
)
except Session.DoesNotExist:
pass
login(request, user)
return redirect('assemblies:home')
return render(
request=request,
template_name='registration/login.html',
context=locals(),
)
......@@ -9,7 +9,7 @@ from assemblies import views as assemblies
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
path('', include('django_kubernetes_probes.urls')),
path('accounts/login/', assemblies.loginView, name='login'),
path('', include('pre_basetheme_bootstrap.urls')),
path('', include('basetheme_bootstrap.urls')),
path('admin/', admin.site.urls),
path('', include("assemblies.urls")),
......
from django.urls import path
from . import views
urlpatterns = [
path('accounts/login/', views.loginView, name='login'),
]
from basetheme_bootstrap.forms import AuthenticationForm
from django.contrib.auth import login
from django.contrib.sessions.models import Session
from django.shortcuts import render, redirect
from assemblies import models
def loginView(request):
if request.user.is_authenticated:
return redirect("assemblies:home")
if request.method == "POST":
form = AuthenticationForm(
data=request.POST,
request=request,
)
if form.is_valid():
user = form.get_user()
session_key = request.session.session_key
if session_key:
try:
session = Session.objects.get(session_key=session_key)
models.SimulatorJob.objects.filter(
owning_session=session,
).update(
owner=user,
owning_session=None,
)
models.Assembly.objects.filter(
owning_session=session,
).update(
owner=user,
owning_session=None,
)
except Session.DoesNotExist:
pass
login(request, user)
return redirect('assemblies:home')
else:
form = AuthenticationForm(
request=request,
)
return render(
request=request,
template_name='registration/login.html',
context=dict(
form=form,
),
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment