Fixed #17046 -- Added a check if the username passed to User.objects.create_user is empty or not. Thanks, kwadrat.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17628 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2012-03-02 16:56:20 +00:00
parent 40b248acc7
commit fcaf8eae14
3 changed files with 10 additions and 1 deletions

View File

@ -149,6 +149,8 @@ class UserManager(models.Manager):
Creates and saves a User with the given username, email and password. Creates and saves a User with the given username, email and password.
""" """
now = timezone.now() now = timezone.now()
if not username:
raise ValueError('The given username must be set')
email = UserManager.normalize_email(email) email = UserManager.normalize_email(email)
user = self.model(username=username, email=email, user = self.model(username=username, email=email,
is_staff=False, is_active=True, is_superuser=False, is_staff=False, is_active=True, is_superuser=False,

View File

@ -91,3 +91,8 @@ class UserManagerTestCase(TestCase):
def test_create_user_email_domain_normalize_with_whitespace(self): def test_create_user_email_domain_normalize_with_whitespace(self):
returned = UserManager.normalize_email('email\ with_whitespace@D.COM') returned = UserManager.normalize_email('email\ with_whitespace@D.COM')
self.assertEquals(returned, 'email\ with_whitespace@d.com') self.assertEquals(returned, 'email\ with_whitespace@d.com')
def test_empty_username(self):
self.assertRaisesMessage(ValueError,
'The given username must be set',
User.objects.create_user, username='')

View File

@ -280,7 +280,9 @@ Manager functions
.. method:: models.UserManager.create_user(username, email=None, password=None) .. method:: models.UserManager.create_user(username, email=None, password=None)
.. versionchanged:: 1.4 .. versionchanged:: 1.4
The ``email`` parameter was made optional. The ``email`` parameter was made optional. The username
parameter is now checked for emptiness and raises a
:exc:`ValueError` in case of a negative result.
Creates, saves and returns a :class:`~django.contrib.auth.models.User`. Creates, saves and returns a :class:`~django.contrib.auth.models.User`.