Initial QSfera import
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user