Files
QSfera/Desktop/test/gui/helpers/UserHelper.py
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

75 lines
1.7 KiB
Python

from base64 import b64encode
from typing import NamedTuple
class User(NamedTuple):
username: str
password: str
displayname: str
email: str
test_users = {
"admin": User(
username="admin",
password="admin",
displayname="adminUsername",
email="admin@example.org",
),
"Alice": User(
username="Alice",
password="1234",
displayname="Alice Hansen",
email="alice@example.org",
),
"Brian": User(
username="Brian",
password="AaBb2Cc3Dd4",
displayname="Brian Murphy",
email="brian@example.org",
),
"Carol": User(
username="Carol",
password="1234",
displayname="Carol King",
email="carol@example.org",
),
"David": User(
username="David",
password="1234",
displayname="David Lopez",
email="david@example.org",
),
}
def get_default_password():
return "1234"
def basic_auth_header(user=None, password=None):
if not user and not password:
user = "admin"
password = "admin"
elif not user == "public" and not password:
password = get_password_for_user(user)
token = b64encode((f"{user}:{password}").encode()).decode()
return {"Authorization": "Basic " + token}
def get_user_info(username, attribute):
if username in test_users:
return getattr(test_users[username], attribute)
if attribute == "password":
return get_default_password()
raise ValueError(f"Invalid user attribute: {attribute}")
def get_displayname_for_user(username):
return get_user_info(username, "displayname")
def get_password_for_user(username):
return get_user_info(username, "password")