core: accounts: use django form

This commit is contained in:
2023-10-25 16:10:23 +02:00
parent 4cda3de144
commit 2c7bbb5a5f
13 changed files with 83 additions and 62 deletions

View File

@ -1,23 +1,24 @@
from django.shortcuts import render
from django.views import View
from django.http import HttpResponse
from django.http import HttpResponse, HttpRequest
from django.contrib.auth.models import User
from django.db.models.query import QuerySet
from ..status_code import *
from ..settings import *
from ..forms.register import RegisterForm
class Register(View):
def get(self, request):
return render(request, "register.html")
class RegisterView(View):
def get(self, request: HttpRequest):
return render(request, "register.html", {"form": RegisterForm})
def post(self, request):
password = request.POST.get("password")
if (password == None or not PASSWORD_MAX_SIZE >= len(password) >= PASSWORD_MIN_SIZE):
return HttpResponse(INVALID_PASSWORD)
username = request.POST.get("username")
if (username == None or not USERNAME_MAX_SIZE >= len(username) >= USERNAME_MIN_SIZE):
return HttpResponse(INVALID_USERNAME)
def post(self, request: HttpRequest):
form: RegisterForm = RegisterForm(request.POST)
if not form.is_valid():
return HttpResponse(INVALID_USERNAME_PASSWORD)
username: str = form.cleaned_data["username"]
password: str = form.cleaned_data["password"]
if User.objects.filter(username=username).exists():
return HttpResponse(USERNAME_ALREADY_USED)