Add app home Spaces shell and session diagnostics profile menu

Post-login lands on Spaces empty state instead of a principal dump.
Profile menu exposes Session details with identity, tenant, roles/groups,
and authz diagnostics for operator refinement (CSOC-WP-0004 T01/T07).
This commit is contained in:
tegwick 2026-08-11 02:31:55 +02:00
parent 8169102866
commit 422cd613f6
10 changed files with 404 additions and 88 deletions

View file

@ -1,19 +1,28 @@
{% extends "base.html" %}
{% block title %}Home — {{ site_name }}{% endblock %}
{% block title %}Spaces — {{ site_name }}{% endblock %}
{% block content %}
<h1>Signed in</h1>
<p class="muted">Authenticated shell (CSOC-WP-0002). Content surfaces come later.</p>
<div class="card">
<h2 style="margin-top:0;">Principal</h2>
<dl>
<dt>Display name</dt><dd>{{ principal.display_name }}</dd>
<dt>Username</dt><dd>{{ principal.username }}</dd>
<dt>Tenant</dt><dd>{{ principal.tenant_id }}</dd>
<dt>Issuer</dt><dd>{{ principal.issuer }}</dd>
<dt>Subject</dt><dd>{{ principal.subject }}</dd>
<dt>user-engine id</dt><dd>{{ principal.user_engine_user_id }}</dd>
<dt>user-engine source</dt><dd>{{ principal.user_engine_source|default:"—" }}</dd>
<dt>authz</dt><dd>{{ principal.authz_reason }} <span class="muted">({{ principal.authz_decision_id }})</span></dd>
</dl>
</div>
<h1>Spaces</h1>
<p class="muted">
Co-creation spaces for your tenant.
Content will live as markdown in Forgejo-backed repositories.
</p>
{% if spaces %}
<ul class="space-list" style="list-style:none;padding:0;margin:1.5rem 0 0;">
{% for space in spaces %}
<li class="card" style="margin-top:0.75rem;">
<strong>{{ space.title }}</strong>
<span class="muted"> · {{ space.slug }}</span>
</li>
{% endfor %}
</ul>
{% else %}
<div class="card">
<h2 style="margin-top:0;">No spaces yet</h2>
<p class="muted" style="margin-bottom:0;">
Spaces and Forgejo-backed content land in the next steps
(CSOC-WP-0004-T02+). Use the profile menu for session diagnostics.
</p>
</div>
{% endif %}
{% endblock %}