| 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] |
|
|