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:
parent
8169102866
commit
422cd613f6
10 changed files with 404 additions and 88 deletions
52
coulomb_social/templates/core/account_session.html
Normal file
52
coulomb_social/templates/core/account_session.html
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}Session details — {{ site_name }}{% endblock %}
|
||||
{% block content %}
|
||||
<p class="muted" style="margin:0 0 0.5rem;">
|
||||
<a href="{% url 'core:app_home' %}">← Spaces</a>
|
||||
</p>
|
||||
<h1>Session details</h1>
|
||||
<p class="muted">
|
||||
Identity and authorization diagnostics for refining user, group, role,
|
||||
and tenant management. No secrets are shown.
|
||||
</p>
|
||||
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0;">Identity</h2>
|
||||
<dl>
|
||||
<dt>Display name</dt><dd>{{ principal.display_name }}</dd>
|
||||
<dt>Username</dt><dd>{{ principal.username }}</dd>
|
||||
<dt>Email</dt><dd>{{ principal.email|default:"—" }}</dd>
|
||||
<dt>Issuer</dt><dd>{{ principal.issuer|default:"—" }}</dd>
|
||||
<dt>Subject</dt><dd>{{ principal.subject|default:"—" }}</dd>
|
||||
<dt>Principal type</dt><dd>{{ principal.principal_type }}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0;">Platform user</h2>
|
||||
<dl>
|
||||
<dt>user-engine id</dt><dd>{{ principal.user_engine_user_id|default:"—" }}</dd>
|
||||
<dt>user-engine source</dt><dd>{{ principal.user_engine_source|default:"—" }}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0;">Tenancy, roles & groups</h2>
|
||||
<dl>
|
||||
<dt>Tenant</dt><dd>{{ principal.tenant_id|default:"—" }}</dd>
|
||||
<dt>Roles</dt><dd>{{ principal.roles_display }}</dd>
|
||||
<dt>Groups</dt><dd>{{ principal.groups_display }}</dd>
|
||||
<dt>Assurance</dt><dd>{{ principal.assurance_display }}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2 style="margin-top:0;">Authorization</h2>
|
||||
<dl>
|
||||
<dt>Shell check</dt>
|
||||
<dd>{% if principal.authz_allow %}allow{% else %}deny{% endif %}</dd>
|
||||
<dt>Reason</dt><dd>{{ principal.authz_reason }}</dd>
|
||||
<dt>Decision id</dt><dd>{{ principal.authz_decision_id }}</dd>
|
||||
</dl>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
@ -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 %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue