From 4ab45b4347631c4e4fb5a5bf406346f1e46bb6ff Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Mon, 26 Jun 2023 17:13:10 +0000 Subject: [PATCH] Fix `account` --- FOSSDB/apps/account/forms.py | 11 +++++++--- FOSSDB/apps/account/models.py | 0 FOSSDB/apps/account/urls.py | 5 ++--- FOSSDB/apps/account/views.py | 40 ++++++++++++++++++++++++++--------- 4 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 FOSSDB/apps/account/models.py diff --git a/FOSSDB/apps/account/forms.py b/FOSSDB/apps/account/forms.py index 1b47e64..b3f01a2 100644 --- a/FOSSDB/apps/account/forms.py +++ b/FOSSDB/apps/account/forms.py @@ -3,9 +3,14 @@ from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User -class RegisterForm(UserCreationForm): - email = forms.EmailField(required=True) +class SignUpForm(UserCreationForm): + email = forms.EmailField(required=False) class Meta: model = User - fields = ["username", "email", "password1", "password2"] + fields = ( + "username", + "email", + "password1", + "password2", + ) diff --git a/FOSSDB/apps/account/models.py b/FOSSDB/apps/account/models.py new file mode 100644 index 0000000..e69de29 diff --git a/FOSSDB/apps/account/urls.py b/FOSSDB/apps/account/urls.py index 8fa14e8..f060b68 100644 --- a/FOSSDB/apps/account/urls.py +++ b/FOSSDB/apps/account/urls.py @@ -3,7 +3,6 @@ from django.urls import path from . import views urlpatterns = [ - path("", views.sign_up, name="singup"), - path("signup", views.sign_up, name="signup"), - path("login", views.login_, name="login"), + path("signup/", views.signup_view, name="signup"), + path("login/", views.login_view, name="login"), ] diff --git a/FOSSDB/apps/account/views.py b/FOSSDB/apps/account/views.py index 4bf3238..88ba798 100644 --- a/FOSSDB/apps/account/views.py +++ b/FOSSDB/apps/account/views.py @@ -1,20 +1,40 @@ -from django.contrib.auth import login +from django.contrib.auth import authenticate, login +from django.contrib.auth.forms import AuthenticationForm from django.shortcuts import redirect, render -from .forms import RegisterForm +from .forms import SignUpForm -def sign_up(request): +def signup_view(request): + form = SignUpForm(request.POST or None) if request.method == "POST": - form = RegisterForm(request.POST) if form.is_valid(): user = form.save() + raw_password = form.cleaned_data.get("password1") + user = authenticate( + username=user.username, + password=raw_password, + ) login(request, user) - return redirect("") - else: - form = RegisterForm() - return render(request, "registration/sign_up.html", {"title": "Sign Up", "form": form}) + return redirect("index") + + context = { + "title": "Sign Up", + "form": form, + } + return render(request, "registration/signup.html", context) -def login_(request): - return render(request, "registration/login.html", {"title": "Login"}) +def login_view(request): + form = AuthenticationForm(data=request.POST or None) + if request.method == "POST": + if form.is_valid(): + user = form.get_user() + login(request, user) + return redirect("index") + + context = { + "title": "Login", + "form": form, + } + return render(request, "registration/login.html", context)