Add name validators to all signup forms

This commit is contained in:
PCoder 2019-12-18 22:40:33 +05:30
parent 3f012b7514
commit e46729ee04
3 changed files with 24 additions and 3 deletions

View file

@ -8,6 +8,7 @@ from utils.forms import LoginFormMixin, SignupFormMixin, BillingAddressForm
from .models import MembershipType, MembershipOrder from .models import MembershipType, MembershipOrder
from .models import Booking, BookingOrder from .models import Booking, BookingOrder
from membership.models import validate_name
class LoginForm(LoginFormMixin): class LoginForm(LoginFormMixin):
@ -19,7 +20,8 @@ class SignupForm(SignupFormMixin):
confirm_password = forms.CharField(widget=forms.PasswordInput()) confirm_password = forms.CharField(widget=forms.PasswordInput())
password = forms.CharField(widget=forms.PasswordInput()) password = forms.CharField(widget=forms.PasswordInput())
name = forms.CharField(label='name', name = forms.CharField(label='name',
widget=forms.TextInput(attrs={'placeholder': 'Full name'})) widget=forms.TextInput(attrs={'placeholder': 'Full name'}),
validators=[validate_name])
class MembershipBillingForm(BillingAddressForm): class MembershipBillingForm(BillingAddressForm):

View file

@ -6,9 +6,10 @@ import tempfile
from django import forms from django import forms
from django.conf import settings from django.conf import settings
from django.contrib.auth import authenticate from django.contrib.auth import authenticate
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from membership.models import CustomUser from membership.models import CustomUser, validate_name
from .models import UserHostingKey, GenericProduct from .models import UserHostingKey, GenericProduct
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -164,6 +165,14 @@ class HostingUserSignupForm(forms.ModelForm):
raise forms.ValidationError("Passwords don't match") raise forms.ValidationError("Passwords don't match")
return confirm_password return confirm_password
def clean_name(self):
name = self.cleaned_data.get('name')
try:
validate_name(name)
except ValidationError as ve:
raise forms.ValidationError(_("Improper Name"))
return name
class UserHostingKeyForm(forms.ModelForm): class UserHostingKeyForm(forms.ModelForm):
private_key = forms.CharField(widget=forms.HiddenInput(), required=False) private_key = forms.CharField(widget=forms.HiddenInput(), required=False)

View file

@ -3,8 +3,9 @@ from django.contrib.auth import authenticate
from django.core.mail import EmailMultiAlternatives from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.core.exceptions import ValidationError
from membership.models import CustomUser from membership.models import CustomUser, validate_name
from .models import ContactMessage, BillingAddress, UserBillingAddress from .models import ContactMessage, BillingAddress, UserBillingAddress
@ -30,6 +31,15 @@ class SignupFormMixin(forms.ModelForm):
raise forms.ValidationError("Passwords don't match") raise forms.ValidationError("Passwords don't match")
return confirm_password return confirm_password
def clean_name(self):
name = self.cleaned_data.get('name')
try:
validate_name(name)
except ValidationError as ve:
raise forms.ValidationError(_("Improper Name"))
return name
class LoginFormMixin(forms.Form): class LoginFormMixin(forms.Form):
email = forms.CharField(widget=forms.EmailInput()) email = forms.CharField(widget=forms.EmailInput())