|
|
|
|
@ -2,62 +2,77 @@ import streamlit_authenticator as stauth |
|
|
|
|
from sys import argv |
|
|
|
|
import yaml |
|
|
|
|
|
|
|
|
|
def credentials(username, email, name, pwd): |
|
|
|
|
def load_credentials(): |
|
|
|
|
with open('credentials.yaml','r') as f: |
|
|
|
|
return yaml.safe_load(f) |
|
|
|
|
|
|
|
|
|
def credentials(username, name, pwd): |
|
|
|
|
pwd = stauth.Hasher([pwd]).generate()[0] |
|
|
|
|
if username in list(load_credentials()['credentials']['usernames'].keys()): |
|
|
|
|
print('Användarnamnet finns redan.') |
|
|
|
|
return 'Användarnamnet finns redan.', False |
|
|
|
|
credentials = { |
|
|
|
|
'text': f''' |
|
|
|
|
{username}: |
|
|
|
|
email: {email} |
|
|
|
|
email: '', |
|
|
|
|
name: {name} |
|
|
|
|
password: {pwd} |
|
|
|
|
password: '***' |
|
|
|
|
''', |
|
|
|
|
'data': {username: |
|
|
|
|
{'email': email, |
|
|
|
|
{'email': '', |
|
|
|
|
'name': name, |
|
|
|
|
'pwd': pwd} |
|
|
|
|
'password': pwd} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return credentials |
|
|
|
|
for k, v in credentials.items(): |
|
|
|
|
print(k, v) |
|
|
|
|
return credentials, True |
|
|
|
|
|
|
|
|
|
def update(c): |
|
|
|
|
def update(c, print_out=True, update=False): |
|
|
|
|
if print_out: |
|
|
|
|
print(c['text']) |
|
|
|
|
if not update: |
|
|
|
|
if input('Update credentials file? (y/n)') in ['y', 'yes']: |
|
|
|
|
update = True |
|
|
|
|
if update: |
|
|
|
|
try: |
|
|
|
|
with open('credentials.yaml','r') as f: |
|
|
|
|
cur_yaml = yaml.safe_load(f) # Note the safe_load |
|
|
|
|
cur_yaml = load_credentials() |
|
|
|
|
cur_yaml['credentials']['usernames'].update(c['data']) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if cur_yaml: |
|
|
|
|
with open('credentials.yaml','w') as f: |
|
|
|
|
yaml.safe_dump(cur_yaml, f) # Also note the safe_dump |
|
|
|
|
yaml.safe_dump(cur_yaml, f) |
|
|
|
|
|
|
|
|
|
except FileNotFoundError: |
|
|
|
|
print('Found no yaml file') |
|
|
|
|
|
|
|
|
|
if len(argv) == 2: |
|
|
|
|
if argv[1] == 'help': |
|
|
|
|
print('username, email, name, pwd') |
|
|
|
|
exit() |
|
|
|
|
pwd = argv[1] |
|
|
|
|
print(stauth.Hasher([pwd]).generate()[0]) |
|
|
|
|
|
|
|
|
|
elif len(argv) == 5: |
|
|
|
|
username = argv[1] |
|
|
|
|
email = argv[2] |
|
|
|
|
name = argv[3] |
|
|
|
|
pwd = argv[4] |
|
|
|
|
c = credentials(username, email, name, pwd) |
|
|
|
|
update(c) |
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
pwd = input('Password: ').strip() |
|
|
|
|
username = input('Username: ') |
|
|
|
|
if username != '': |
|
|
|
|
email = input('Email: ') |
|
|
|
|
name = input('Name: ') |
|
|
|
|
c = credentials(username, email, name, pwd) |
|
|
|
|
update(c) |
|
|
|
|
else: |
|
|
|
|
print(stauth.Hasher([pwd]).generate()[0]) |
|
|
|
|
return c['text'], False |
|
|
|
|
|
|
|
|
|
# if __name__ == '__main__': |
|
|
|
|
# if len(argv) == 2: |
|
|
|
|
# if argv[1] == 'help': |
|
|
|
|
# print('username, name, pwd') |
|
|
|
|
# exit() |
|
|
|
|
# pwd = argv[1] |
|
|
|
|
# print(stauth.Hasher([pwd]).generate()[0]) |
|
|
|
|
|
|
|
|
|
# elif len(argv) == 4: |
|
|
|
|
# username = argv[1] |
|
|
|
|
# name = argv[2] |
|
|
|
|
# pwd = argv[3] |
|
|
|
|
# c = credentials(username, name, pwd) |
|
|
|
|
# update(c) |
|
|
|
|
|
|
|
|
|
# else: |
|
|
|
|
# pwd = input('Password: ').strip() |
|
|
|
|
# username = input('Username: ') |
|
|
|
|
# if username != '': |
|
|
|
|
# name = input('Name: ') |
|
|
|
|
# c = credentials(username, name, pwd) |
|
|
|
|
# update(c) |
|
|
|
|
# else: |
|
|
|
|
# print(stauth.Hasher([pwd]).generate()[0]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|