Spaces:
Runtime error
Runtime error
import json | |
import hashlib | |
import modules.constants as constants | |
from os.path import exists | |
def auth_list_to_dict(auth_list): | |
auth_dict = {} | |
for auth_data in auth_list: | |
if 'user' in auth_data: | |
if 'hash' in auth_data: | |
auth_dict |= {auth_data['user']: auth_data['hash']} | |
elif 'pass' in auth_data: | |
auth_dict |= {auth_data['user']: hashlib.sha256(bytes(auth_data['pass'], encoding='utf-8')).hexdigest()} | |
return auth_dict | |
def load_auth_data(filename=None): | |
auth_dict = None | |
if filename != None and exists(filename): | |
with open(filename, encoding='utf-8') as auth_file: | |
try: | |
auth_obj = json.load(auth_file) | |
if isinstance(auth_obj, list) and len(auth_obj) > 0: | |
auth_dict = auth_list_to_dict(auth_obj) | |
except Exception as e: | |
print('load_auth_data, e: ' + str(e)) | |
return auth_dict | |
auth_dict = load_auth_data(constants.AUTH_FILENAME) | |
auth_enabled = auth_dict != None | |
def check_auth(user, password): | |
if user not in auth_dict: | |
return False | |
else: | |
return hashlib.sha256(bytes(password, encoding='utf-8')).hexdigest() == auth_dict[user] | |