Interner Zugang auffindbar + Owner kann eigenen Code selbst aendern

- Footer hat jetzt einen eigenen Block "Intern" mit Links zum
  Bewerbungs-Postfach und zu Zugaenge & Rollen (vorher nur ein
  winziger Link ganz unten)
- Postfach-Login verlinkt auf die Zugaenge-Seite
- Neue Tabelle app_settings + Endpunkt /admin/owner/set-code:
  der Hauptadministrator kann seinen Code selbst aendern, mit
  Bestaetigung des aktuellen Codes; gespeichert wird nur der Hash
- Neuer Tab "Mein Zugang" in zugaenge.html (nur fuer den Owner)

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-07-31 02:19:36 +02:00
co-authored by Claude Opus 5
parent 0e1f2fbdc4
commit 597988a9a2
8 changed files with 140 additions and 5 deletions
+27
View File
@@ -74,6 +74,7 @@
<div class="tabs">
<button class="tab-btn active" data-tab="tab-users">Zugänge</button>
<button class="tab-btn" data-tab="tab-roles">Rollen</button>
<button class="tab-btn" data-tab="tab-mycode">Mein Zugang</button>
<button class="tab-btn" data-tab="tab-audit">Aktivitätsprotokoll</button>
</div>
@@ -98,6 +99,32 @@
<div id="roles-list" class="grid grid-2"></div>
</div>
<!-- ---- Tab: Mein Zugang (nur Owner) ---- -->
<div class="tab-panel" id="tab-mycode">
<h2>Mein Zugangscode</h2>
<p class="small muted" style="max-width:60ch;">
Hier änderst du deinen eigenen Hauptadministrator-Code. Er wird nur als nicht
umkehrbarer Prüfwert gespeichert — niemand (auch ich nicht) kann ihn auslesen.
Merk ihn dir deshalb gut.
</p>
<form id="owner-code-form" class="app-form" style="max-width:420px;margin-top:1.2rem;" novalidate>
<div class="field">
<label for="oc-current">Aktueller Code</label>
<input id="oc-current" type="password" autocomplete="off" required />
</div>
<div class="field">
<label for="oc-new">Neuer Code (mindestens 10 Zeichen)</label>
<input id="oc-new" type="password" autocomplete="off" required minlength="10" />
</div>
<div class="field">
<label for="oc-new2">Neuer Code wiederholen</label>
<input id="oc-new2" type="password" autocomplete="off" required minlength="10" />
</div>
<button class="btn btn-primary" type="submit">Code ändern</button>
<div class="form-status" id="owner-code-status"></div>
</form>
</div>
<!-- ---- Tab: Aktivitätsprotokoll ---- -->
<div class="tab-panel" id="tab-audit">
<h2>Aktivitätsprotokoll</h2>