diff -r 6641e941ef1e -r ff1a9aa48cfd app/django/contrib/auth/create_superuser.py --- a/app/django/contrib/auth/create_superuser.py Tue Oct 14 12:36:55 2008 +0000 +++ b/app/django/contrib/auth/create_superuser.py Tue Oct 14 16:00:59 2008 +0000 @@ -1,94 +1,8 @@ """ -Helper function for creating superusers in the authentication system. - -If run from the command line, this module lets you create a superuser -interactively. +Create a superuser from the command line. Deprecated; use manage.py +createsuperuser instead. """ -from django.core import validators -from django.contrib.auth.models import User -import getpass -import os -import sys -import re - -RE_VALID_USERNAME = re.compile('\w+$') - -def createsuperuser(username=None, email=None, password=None): - """ - Helper function for creating a superuser from the command line. All - arguments are optional and will be prompted-for if invalid or not given. - """ - try: - import pwd - except ImportError: - default_username = '' - else: - # Determine the current system user's username, to use as a default. - default_username = pwd.getpwuid(os.getuid())[0].replace(' ', '').lower() - - # Determine whether the default username is taken, so we don't display - # it as an option. - if default_username: - try: - User.objects.get(username=default_username) - except User.DoesNotExist: - pass - else: - default_username = '' - - try: - while 1: - if not username: - input_msg = 'Username' - if default_username: - input_msg += ' (Leave blank to use %r)' % default_username - username = raw_input(input_msg + ': ') - if default_username and username == '': - username = default_username - if not RE_VALID_USERNAME.match(username): - sys.stderr.write("Error: That username is invalid. Use only letters, digits and underscores.\n") - username = None - continue - try: - User.objects.get(username=username) - except User.DoesNotExist: - break - else: - sys.stderr.write("Error: That username is already taken.\n") - username = None - while 1: - if not email: - email = raw_input('E-mail address: ') - try: - validators.isValidEmail(email, None) - except validators.ValidationError: - sys.stderr.write("Error: That e-mail address is invalid.\n") - email = None - else: - break - while 1: - if not password: - password = getpass.getpass() - password2 = getpass.getpass('Password (again): ') - if password != password2: - sys.stderr.write("Error: Your passwords didn't match.\n") - password = None - continue - if password.strip() == '': - sys.stderr.write("Error: Blank passwords aren't allowed.\n") - password = None - continue - break - except KeyboardInterrupt: - sys.stderr.write("\nOperation cancelled.\n") - sys.exit(1) - u = User.objects.create_user(username, email, password) - u.is_staff = True - u.is_active = True - u.is_superuser = True - u.save() - print "Superuser created successfully." - if __name__ == "__main__": - createsuperuser() + from django.core.management import call_command + call_command("createsuperuser")