Aufgaben: - Bearbeiten-Dialog (Titel, Beschreibung, Prioritaet, Frist, Zuordnung). Als natives <dialog>: Fokusfang, Esc zum Schliessen und Abdunklung ohne eigenen Code. - Loeschen nur fuer Management, mit Rueckfrage und Protokolleintrag. Das Konzept will, dass Erledigtes stehen bleibt -- Loeschen ist der Ausnahmefall fuer Fehleintraege, nicht der normale Abschluss. Personen (/workspace/personen.html, nur Management): - Anlegen, Code erneuern, sperren/entsperren, Protokollansicht - Der Code wird genau einmal in der Antwort zurueckgegeben, nie gespeichert; beim Schliessen auch aus dem Dokument entfernt - Selbstschutz: niemand kann sich selbst sperren, und das letzte aktive Management laesst sich nicht sperren -- sonst kaeme niemand mehr hinein - Code fuer sich selbst tauschen nur mit ausdruecklicher Bestaetigung, weil es die eigene Sitzung sofort beendet Zwei Fehler, die beim Testen aufgefallen sind: 1. Rollenpruefung fehlte beim Ausliefern der Seiten. Ein Creator bekam personen.html mit HTTP 200 -- die Schnittstellen wiesen ihn zwar ab, das Geruest der Seite war aber sichtbar. GESCHUETZT ist jetzt eine Zuordnung Pfad -> erlaubte Rollen statt einer blossen Liste. 2. Das Protokoll nannte den falschen Verursacher. personAnlegen trug die NEU ANGELEGTE Person als person_id ein, der Eintrag las sich also so, als haette sie sich selbst angelegt. Akteur und Betroffener sind jetzt getrennt: Akteur in person_id, Betroffener im Text. Ueber die Kommandozeile angelegte Personen zeigen korrekt keinen Akteur.
87 lines
3.2 KiB
HTML
87 lines
3.2 KiB
HTML
<!doctype html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
<title>Personen & Zugänge · Creator Workspace</title>
|
|
<meta name="robots" content="noindex, nofollow" />
|
|
<meta name="theme-color" content="#05070d" />
|
|
<link rel="icon" href="assets/img/favicon.png" />
|
|
<link rel="stylesheet" href="assets/css/gate.css" />
|
|
<link rel="stylesheet" href="assets/css/start.css" />
|
|
<link rel="stylesheet" href="assets/css/aufgaben.css" />
|
|
<link rel="stylesheet" href="assets/css/personen.css" />
|
|
</head>
|
|
|
|
<body class="start">
|
|
|
|
<header class="kopfleiste">
|
|
<p class="marke"><a class="zurueck" href="start.html">Creator Workspace</a> · Personen</p>
|
|
<div class="kopfleiste__rechts">
|
|
<span class="wer" id="wer">…</span>
|
|
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="inhalt inhalt--breit">
|
|
|
|
<section class="kopf-zeile">
|
|
<div>
|
|
<p class="marke">Zugänge</p>
|
|
<h1 class="titel">Personen & Zugangscodes</h1>
|
|
</div>
|
|
<button type="button" class="knopf knopf--klein" id="neu-oeffnen">Person anlegen</button>
|
|
</section>
|
|
|
|
<form class="neu" id="neu" hidden>
|
|
<div class="neu__raster">
|
|
<div>
|
|
<label class="feld-schild" for="f-name">Name</label>
|
|
<input id="f-name" name="name" maxlength="60" placeholder="z. B. Luna" required />
|
|
</div>
|
|
<div>
|
|
<label class="feld-schild" for="f-rolle">Rolle</label>
|
|
<select id="f-rolle" name="rolle">
|
|
<option value="creator" selected>Creator</option>
|
|
<option value="scout">Scout</option>
|
|
<option value="admin">Management</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<p class="fehler" id="neu-fehler" role="alert" aria-live="polite"></p>
|
|
<div class="neu__knoepfe">
|
|
<button type="submit" class="knopf knopf--klein" id="neu-speichern">Anlegen</button>
|
|
<button type="button" class="abmelden" id="neu-abbrechen">Abbrechen</button>
|
|
</div>
|
|
</form>
|
|
|
|
<!-- Anzeige des frisch erzeugten Codes. Bewusst auffällig und mit klarem
|
|
Hinweis, dass er nur jetzt zu sehen ist. -->
|
|
<div class="code-kasten" id="code-kasten" hidden role="status" aria-live="polite">
|
|
<p class="code-kasten__schild">Zugangscode für <span id="code-name"></span></p>
|
|
<p class="code-kasten__code" id="code-wert"></p>
|
|
<p class="code-kasten__hinweis">
|
|
Dieser Code wird <strong>nur jetzt</strong> angezeigt und ist danach nicht mehr
|
|
abrufbar. Sicher weitergeben und in Bitwarden ablegen.
|
|
</p>
|
|
<div class="neu__knoepfe">
|
|
<button type="button" class="knopf knopf--klein" id="code-kopieren">Kopieren</button>
|
|
<button type="button" class="abmelden" id="code-schliessen">Verstanden, schließen</button>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="fehler" id="fehler" role="alert" aria-live="polite"></p>
|
|
|
|
<div id="liste" aria-busy="true"><p class="leise">Personen werden geladen …</p></div>
|
|
|
|
<section class="protokoll-block">
|
|
<p class="feldschild">Letzte Ereignisse</p>
|
|
<div id="protokoll"><p class="leise">…</p></div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<script src="assets/js/personen.js" defer></script>
|
|
</body>
|
|
</html>
|