2024-02-14 16:36:01 -03:00

41 lines
1.6 KiB
Python

from typing import Any
from django import forms
from django.core.exceptions import ValidationError
from django.contrib.auth import authenticate
class CreateUserForm(forms.Form):
username = forms.CharField(label='Username')
password = forms.CharField(label='Password', widget=forms.PasswordInput)
password2 = forms.CharField(label='Confirm Password', widget=forms.PasswordInput) # Adicione este campo para a confirmação da senha
def clean(self):
cleaned_data = super().clean()
username = cleaned_data.get("username")
if username and ' ' in username:
self.add_error('username', ValidationError("Username cannot contain spaces."))
cleaned_data['username'] = username.lower()
password = cleaned_data.get("password")
password2 = cleaned_data.get("password2")
if password and password2 and password != password2:
self.add_error('password2', ValidationError("The two password fields didn't match."))
return cleaned_data
class LoginForm(forms.Form):
username = forms.CharField(label='Username')
password = forms.CharField(label='Password', widget=forms.PasswordInput)
def clean(self):
cleaned_data = super().clean()
username = cleaned_data.get("username")
password = cleaned_data.get("password")
if username and password:
user = authenticate(username=username, password=password)
if not user:
self.add_error(None, ValidationError("Invalid username or password."))
else:
self.add_error(None, ValidationError("Both fields are required."))
return cleaned_data