Source code for duck.etc.blueprints.dashboard.utils
"""
Utility module for the dashboard blueprint.
"""
import os
from duck.settings import SETTINGS
from duck.utils.safe_compare import constant_time_compare
[docs]
def check_username_and_pwd(username: str, pwd: str):
"""
Checks whether the provided username and password matches the configured one.
"""
corrrect_username = None
correct_pwd = None
if SETTINGS['DEBUG']:
correct_username = SETTINGS['DASHBOARD_USERNAME']
correct_pwd = SETTINGS['DASHBOARD_PWD']
else:
correct_username = os.getenv('DASHBOARD_USERNAME')
correct_pwd = os.getenv('DASHBOARD_PWD')
if not correct_username or not correct_pwd:
# Username or password not set.
raise ValueError(
"Dashboard credentials are not configured. Set DASHBOARD_USERNAME and DASHBOARD_PWD environment variables."
)
# Compare username and password.
return constant_time_compare(correct_username, username) and constant_time_compare(correct_pwd, pwd)