auth via DB

This commit is contained in:
JiriUhlir
2026-05-28 11:40:49 +02:00
parent db039e5988
commit 09c742fefb
11 changed files with 335 additions and 23 deletions
+29 -8
View File
@@ -3,7 +3,31 @@ import html
from ..config import PORTAL_PREFIX
def page(title: str, body: str) -> str:
def page(title: str, body: str, user=None) -> str:
nav = ""
user_panel = ""
if user:
username = html.escape(user.get("username", ""))
display_name = html.escape(user.get("display_name") or user.get("username", ""))
nav = """
<nav>
<a href="/portal">Aplikace</a>
<a href="/portal/new-app">Nová aplikace</a>
<a href="/portal/deployments">Nasazení</a>
<a href="/portal/backups">Zálohy</a>
</nav>
"""
user_panel = f"""
<div class="user-menu">
<span>{display_name}</span>
<span class="muted">@{username}</span>
<form method="post" action="/portal/logout">
<button type="submit" class="btn-secondary">Odhlásit</button>
</form>
</div>
"""
return f"""
<html>
<head>
@@ -17,12 +41,8 @@ def page(title: str, body: str) -> str:
<img src="{PORTAL_PREFIX}/static/csbot-logo.svg" alt="CSBOT">
<span>AppFactory</span>
</a>
<nav>
<a href="/portal">Aplikace</a>
<a href="/portal/new-app">Nová aplikace</a>
<a href="/portal/deployments">Nasazení</a>
<a href="/portal/backups">Zálohy</a>
</nav>
{nav}
{user_panel}
</header>
<main>
{body}
@@ -32,7 +52,7 @@ def page(title: str, body: str) -> str:
"""
def render_result(title, back_url, sections, extra_link=None, extra_label=None):
def render_result(title, back_url, sections, extra_link=None, extra_label=None, user=None):
rendered_sections = ""
for section_title, content in sections:
@@ -57,4 +77,5 @@ def render_result(title, back_url, sections, extra_link=None, extra_label=None):
{rendered_sections}
</div>
""",
user=user,
)