Add single-user local authentication

This commit is contained in:
tim
2026-09-27 23:38:28 +02:00
parent 75cc0464a2
commit 1a10fe53f3
11 changed files with 425 additions and 20 deletions
+10 -7
View File
@@ -179,17 +179,20 @@ def auth_check() -> Any:
def auth_login() -> Any:
data = _json()
try:
identity = auth.login_cwa(
str(data.get("username", "")),
str(data.get("password", "")),
orchestrator.cwa(),
auth.client_address(request.headers, request.remote_addr),
)
username = str(data.get("username", ""))
password = str(data.get("password", ""))
address = auth.client_address(request.headers, request.remote_addr)
if auth.active_mode() == auth.AUTH_LOCAL:
identity = auth.login_local(username, password, address)
else:
identity = auth.login_cwa(username, password, orchestrator.cwa(), address)
except auth.AuthError as e:
return {"error": str(e)}, 401
session.clear()
session["user"] = identity.name
session["mode"] = auth.AUTH_CWA
session["mode"] = auth.active_mode()
if auth.active_mode() == auth.AUTH_LOCAL:
session["local_password_version"] = auth.local_password_version()
session.permanent = bool(data.get("remember"))
logger.info(f"{identity.name} logged in")
return {"authenticated": True, "user": identity.name}