1. Duncan Parkes
  2. django-registration


ubernostrum  committed 09fa25f

Require alphanumeric usernames to match django.contrib.auth

  • Participants
  • Parent commits c522011
  • Branches default

Comments (0)

Files changed (1)

File registration/forms.py

View file
  • Ignore whitespace
+import re
 from django import newforms as forms
 from django.contrib.auth.models import User
 # in the HTML. Your mileage may vary.
 attrs_dict = { 'class': 'required' }
+username_re = re.compile(r'^\w+$')
 class RegistrationForm(forms.Form):
     Form for registering a new user account.
                                 label=u'Password (again, to catch typos)')
     tos = forms.BooleanField(widget=forms.CheckboxInput(attrs=attrs_dict),
                              label=u'I have read and agree to the Terms of Service')
     def clean_username(self):
-        Validates that the username is not already in use.
+        Validates that the username is alphanumeric and is not already
+        in use.
         if 'username' in self.cleaned_data:
+            if not username_re.search(self.cleaned_data['username']):
+                raise forms.ValidationError(u'Usernames can only contain letters, numbers and underscores')
                 user = User.objects.get(username__exact=self.cleaned_data['username'])
             except User.DoesNotExist: