def createsuperuser(): "Creates a superuser account." from django.core import validators from django.models.auth import users import getpass try: while 1: username = raw_input('Username (only letters, digits and underscores): ') if not username.isalnum(): sys.stderr.write("Error: That username is invalid.\n") continue try: users.get_object(username__exact=username) except users.UserDoesNotExist: break else: sys.stderr.write("Error: That username is already taken.\n") while 1: 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") else: break while 1: password = getpass.getpass() password2 = getpass.getpass('Password (again): ') if password != password2: sys.stderr.write("Error: Your passwords didn't match.\n") continue if password.strip() == '': sys.stderr.write("Error: Blank passwords aren't allowed.\n") continue break except KeyboardInterrupt: sys.stderr.write("\nOperation cancelled.\n") sys.exit(1) u = users.create_user(username, email, password) u.is_staff = True u.is_active = True u.is_superuser = True u.save() print "User created successfully."
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. try: default_username = pwd.getpwuid(os.getuid())[0].replace(' ', '').lower() except KeyError: default_username = '' # 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 username.isalnum(): 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."
def handle(self, *args, **options): username = options.get('username', None) email = options.get('email', None) interactive = options.get('interactive') # Do quick and dirty validation if --noinput if not interactive: if not username or not email: raise CommandError("You must use --username and --email with --noinput.") if not RE_VALID_USERNAME.match(username): raise CommandError("Invalid username. Use only letters, digits, and underscores") try: validators.isValidEmail(email, None) except validators.ValidationError: raise CommandError("Invalid email address.") password = '' # Try to determine the current system user's username to use as a default. try: import pwd except ImportError: default_username = '' else: 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 = '' # Prompt for username/email/password. Enclose this whole thing in a # try/except to trap for a keyboard interrupt and exit gracefully. if interactive: try: # Get a username while 1: if not username: input_msg = 'Username' if default_username: input_msg += ' (Leave blank to use %r)' % default_username username = 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 # Get an email while 1: if not email: email = 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 # Get a password 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) User.objects.create_superuser(username, email, password) print("Superuser created successfully.")
def isValidEmail(self, field_data, all_data): try: validators.isValidEmail(field_data, all_data) except validators.ValidationError as e: raise validators.CriticalValidationError(e.messages)
def validate(self, field_data, all_data): validators.isValidEmail(field_data, all_data)
def handle(self, *args, **options): username = options.get('username', None) email = options.get('email', None) interactive = options.get('interactive') # Do quick and dirty validation if --noinput if not interactive: if not username or not email: raise CommandError("You must use --username and --email with --noinput.") if not RE_VALID_USERNAME.match(username): raise CommandError("Invalid username. Use only letters, digits, and underscores") try: validators.isValidEmail(email, None) except validators.ValidationError: raise CommandError("Invalid email address.") password = '' # Try to determine the current system user's username to use as a default. try: import pwd except ImportError: default_username = '' else: 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 = '' # Prompt for username/email/password. Enclose this whole thing in a # try/except to trap for a keyboard interrupt and exit gracefully. if interactive: try: # Get a username 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 # Get an email 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 # Get a password 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) User.objects.create_superuser(username, email, password) print "Superuser created successfully."
def isValidEmail(self, field_data, all_data): try: validators.isValidEmail(field_data, all_data) except validators.ValidationError, e: raise validators.CriticalValidationError, e.messages
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."