File size: 1,246 Bytes
2a9e003 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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]
|