From 01300ba54a67730451408a25c696d7178a32ee6e Mon Sep 17 00:00:00 2001 From: Jochen Mehlich Date: Wed, 28 Aug 2024 14:53:37 +0200 Subject: [PATCH] added login functionality Signed-off-by: Jochen Mehlich --- theme/templates/login.html | 21 ++++++--------------- zitate/forms.py | 6 ++++++ zitate/views.py | 20 +++++++++++++++++++- 3 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 zitate/forms.py diff --git a/theme/templates/login.html b/theme/templates/login.html index 431b094..cc3ff6e 100644 --- a/theme/templates/login.html +++ b/theme/templates/login.html @@ -8,29 +8,20 @@

Sign in to your account

-
+ + {% csrf_token %} +
- - + +
-
-
-
- -
-
- -
-
- Forgot password? -

- Don’t have an account yet? Sign up + Don’t have an account yet? Login

diff --git a/zitate/forms.py b/zitate/forms.py new file mode 100644 index 0000000..df82972 --- /dev/null +++ b/zitate/forms.py @@ -0,0 +1,6 @@ +from django import forms +from django.contrib.auth.models import User + +class LoginForm(forms.Form): + username = forms.CharField(label="username", max_length=255) + password = forms.CharField(label="password", max_length=255, widget=forms.PasswordInput) \ No newline at end of file diff --git a/zitate/views.py b/zitate/views.py index fc9e5ed..a9405ac 100644 --- a/zitate/views.py +++ b/zitate/views.py @@ -1,4 +1,22 @@ from django.shortcuts import render +import django.contrib.auth as dauth +from django.shortcuts import redirect + +from zitate.forms import LoginForm + def login(request): - return render(request, "login.html") \ No newline at end of file + if request.method == "GET": + return render(request, "login.html") + elif request.method == "POST": + form = LoginForm(request.POST) + if form.is_valid(): + username = form.cleaned_data["username"] + password = form.cleaned_data["password"] + user = dauth.authenticate(request, username=username, password=password) + if user is not None: + dauth.login(request, user) + return redirect("/") + else: + form = LoginForm() + return render(request, "login.html", {"form": form}) \ No newline at end of file