summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py')
-rw-r--r--lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py143
1 files changed, 0 insertions, 143 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py b/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py
deleted file mode 100644
index ac2835d..0000000
--- a/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py
+++ /dev/null
@@ -1,143 +0,0 @@
-"""
-Management utility to create superusers.
-"""
-from __future__ import unicode_literals
-
-import getpass
-import sys
-from optparse import make_option
-
-from django.contrib.auth import get_user_model
-from django.contrib.auth.management import get_default_username
-from django.core import exceptions
-from django.core.management.base import BaseCommand, CommandError
-from django.db import DEFAULT_DB_ALIAS
-from django.utils.encoding import force_str
-from django.utils.six.moves import input
-from django.utils.text import capfirst
-
-
-class Command(BaseCommand):
-
- def __init__(self, *args, **kwargs):
- # Options are defined in an __init__ method to support swapping out
- # custom user models in tests.
- super(Command, self).__init__(*args, **kwargs)
- self.UserModel = get_user_model()
- self.username_field = self.UserModel._meta.get_field(self.UserModel.USERNAME_FIELD)
-
- self.option_list = BaseCommand.option_list + (
- make_option('--%s' % self.UserModel.USERNAME_FIELD, dest=self.UserModel.USERNAME_FIELD, default=None,
- help='Specifies the login for the superuser.'),
- make_option('--noinput', action='store_false', dest='interactive', default=True,
- help=('Tells Django to NOT prompt the user for input of any kind. '
- 'You must use --%s with --noinput, along with an option for '
- 'any other required field. Superusers created with --noinput will '
- ' not be able to log in until they\'re given a valid password.' %
- self.UserModel.USERNAME_FIELD)),
- make_option('--database', action='store', dest='database',
- default=DEFAULT_DB_ALIAS, help='Specifies the database to use. Default is "default".'),
- ) + tuple(
- make_option('--%s' % field, dest=field, default=None,
- help='Specifies the %s for the superuser.' % field)
- for field in self.UserModel.REQUIRED_FIELDS
- )
-
- option_list = BaseCommand.option_list
- help = 'Used to create a superuser.'
-
- def handle(self, *args, **options):
- username = options.get(self.UserModel.USERNAME_FIELD, None)
- interactive = options.get('interactive')
- verbosity = int(options.get('verbosity', 1))
- database = options.get('database')
-
- # If not provided, create the user with an unusable password
- password = None
- user_data = {}
-
- # Do quick and dirty validation if --noinput
- if not interactive:
- try:
- if not username:
- raise CommandError("You must use --%s with --noinput." %
- self.UserModel.USERNAME_FIELD)
- username = self.username_field.clean(username, None)
-
- for field_name in self.UserModel.REQUIRED_FIELDS:
- if options.get(field_name):
- field = self.UserModel._meta.get_field(field_name)
- user_data[field_name] = field.clean(options[field_name], None)
- else:
- raise CommandError("You must use --%s with --noinput." % field_name)
- except exceptions.ValidationError as e:
- raise CommandError('; '.join(e.messages))
-
- else:
- # Prompt for username/password, and any other required fields.
- # Enclose this whole thing in a try/except to trap for a
- # keyboard interrupt and exit gracefully.
- default_username = get_default_username()
- try:
-
- # Get a username
- verbose_field_name = self.username_field.verbose_name
- while username is None:
- if not username:
- input_msg = capfirst(verbose_field_name)
- if default_username:
- input_msg = "%s (leave blank to use '%s')" % (
- input_msg, default_username)
- raw_value = input(force_str('%s: ' % input_msg))
-
- if default_username and raw_value == '':
- raw_value = default_username
- try:
- username = self.username_field.clean(raw_value, None)
- except exceptions.ValidationError as e:
- self.stderr.write("Error: %s" % '; '.join(e.messages))
- username = None
- continue
- try:
- self.UserModel._default_manager.db_manager(database).get_by_natural_key(username)
- except self.UserModel.DoesNotExist:
- pass
- else:
- self.stderr.write("Error: That %s is already taken." %
- verbose_field_name)
- username = None
-
- for field_name in self.UserModel.REQUIRED_FIELDS:
- field = self.UserModel._meta.get_field(field_name)
- user_data[field_name] = options.get(field_name)
- while user_data[field_name] is None:
- raw_value = input(force_str('%s: ' % capfirst(field.verbose_name)))
- try:
- user_data[field_name] = field.clean(raw_value, None)
- except exceptions.ValidationError as e:
- self.stderr.write("Error: %s" % '; '.join(e.messages))
- user_data[field_name] = None
-
- # Get a password
- while password is None:
- if not password:
- password = getpass.getpass()
- password2 = getpass.getpass(force_str('Password (again): '))
- if password != password2:
- self.stderr.write("Error: Your passwords didn't match.")
- password = None
- continue
- if password.strip() == '':
- self.stderr.write("Error: Blank passwords aren't allowed.")
- password = None
- continue
-
- except KeyboardInterrupt:
- self.stderr.write("\nOperation cancelled.")
- sys.exit(1)
-
- user_data[self.UserModel.USERNAME_FIELD] = username
- user_data['password'] = password
- self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
- if verbosity >= 1:
- self.stdout.write("Superuser created successfully.")