Kanbante 0.46.0 : colonne Draco (sub) éditable dans /admin (lier/délier), note de liaison au profil (app/templates/admin.html, app/templates/profile.html)

This commit is contained in:
Spark
2026-11-06 13:54:11 +00:00
parent f6476c786d
commit 9bc5399b6c
2 changed files with 19 additions and 3 deletions
+18 -2
View File
@@ -20,9 +20,10 @@
<section class="briefing-card"> <section class="briefing-card">
<h2>Utilisateurs ({{ users|length }})</h2> <h2>Utilisateurs ({{ users|length }})</h2>
<p class="notes-hint">Correspondance draco (SSO, HUB-16) : chaque identité draco (<code>sub</code>) désigne <strong>son</strong> compte Kanbante. Un compte de suite sans correspondance est créé automatiquement à sa première connexion draco (JIT, rôle membre). Pour un compte Kanbante <strong>préexistant</strong>, c'est ici que l'administrateur établit la liaison : saisir le <code>sub</code> draco du compte puis « Lier » (champ affiché = délier). Un <code>sub</code> ne peut être lié qu'à un seul compte. Procédure complète : <code>docs/correspondance-draco.md</code>.</p>
<table class="proj-table"> <table class="proj-table">
<thead> <thead>
<tr><th>Utilisateur</th><th>Rôle</th><th>État</th><th>Draco</th><th>Dernière connexion</th><th>Actions</th></tr> <tr><th>Utilisateur</th><th>Rôle</th><th>État</th><th>Draco (sub)</th><th>Dernière connexion</th><th>Actions</th></tr>
</thead> </thead>
<tbody> <tbody>
{% for u in users %} {% for u in users %}
@@ -38,7 +39,22 @@
</form> </form>
</td> </td>
<td>{% if u.active %}Actif{% else %}Désactivé{% endif %}</td> <td>{% if u.active %}Actif{% else %}Désactivé{% endif %}</td>
<td>{% if u.draco_sub %}lié{% else %}—{% endif %}</td> <td>
{% if u.draco_sub %}
<code>{{ u.draco_sub }}</code>
<form method="post" action="/admin/users/{{ u.id }}/draco" class="inline-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<input type="hidden" name="draco_sub" value="">
<button type="submit" class="btn-mini">Délier</button>
</form>
{% else %}
<form method="post" action="/admin/users/{{ u.id }}/draco" class="inline-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<input type="text" name="draco_sub" placeholder="sub draco" size="12" autocomplete="off">
<button type="submit" class="btn-mini">Lier</button>
</form>
{% endif %}
</td>
<td>{{ u.last_login_at or '—' }}</td> <td>{{ u.last_login_at or '—' }}</td>
<td class="admin-actions"> <td class="admin-actions">
<form method="post" action="/admin/users/{{ u.id }}/toggle" class="inline-form"> <form method="post" action="/admin/users/{{ u.id }}/toggle" class="inline-form">
+1 -1
View File
@@ -92,7 +92,7 @@
<button type="submit" class="btn-mini">Délier</button> <button type="submit" class="btn-mini">Délier</button>
</form> </form>
{% else %} {% else %}
<p class="muted">Pas de liaison. Elle se crée automatiquement à la première visite où ta session Kanbante et ton cookie draco coexistent (par exemple en arrivant depuis ObsiGate).</p> <p class="muted">Pas de liaison. Elle se crée automatiquement à la première visite où ta session Kanbante et ton cookie draco coexistent (par exemple en arrivant depuis ObsiGate) ; un administrateur peut aussi l'établir depuis la page Administration. Sans compte lié, la première connexion draco d'une identité de suite crée automatiquement son propre compte Kanbante (JIT).</p>
{% endif %} {% endif %}
</section> </section>