Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import getpass
- from login import get_password
- def add_user(username: str = None, password: str = None) -> None:
- """
- Add a user to the password file.
- username -- the username (default None, will prompt user)
- password -- the password (default None, will prompt user)
- """
- if not username:
- username = input('username: ')
- if len(username) == 0:
- print('[FATAL] username cannot be empty. exiting...')
- return
- # enforce case insensitivity for username
- username = username.lower()
- if not validate_username(username):
- print('[FATAL] username contains illegal characters. exiting...')
- return
- try:
- _passwd = get_password(username)
- print('[FATAL] user "{username:s}" already exists. exiting...'.format(username=username))
- return
- except (FileNotFoundError, LookupError):
- # FileNotFoundError: password file doesn't exist, will be created
- # LookupError: username does not exist, will be created
- pass
- if not password:
- password1 = getpass.getpass('password: ')
- password2 = getpass.getpass('confirm password: ')
- if not password1 == password2:
- print('[FATAL] passwords do not match. exiting...')
- return
- password = password1
- if len(password) == 0:
- print('[FATAL] password cannot be empty. exiting...')
- return
- with open('passwd', 'at') as passwd:
- passwd.write('{username:s}:{password:s}\n'.format(\
- username=username, password=password))
- def validate_username(username: str) -> bool:
- for c in username:
- if c not in '_abcdefghijklmnopqrstuvwxyz0123456789':
- return False
- return True
- if __name__ == '__main__':
- argc = len (sys.argv)
- uname = sys.argv[1] if argc > 1 else None
- pword = sys.argv[2] if argc > 2 else None
- add_user(uname, pword)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement