Geschrieben wurde es seit dem Datenmodell, ansehen konnte es niemand: wer wissen wollte, wer wann eine Rolle geaendert hat, brauchte psql. Neue Seite Verwaltung -> Protokoll: Volltext ueber Aktion und Lauftitel, Filter nach Urheber und Zeitraum, fuenfzig Eintraege je Seite, neueste zuerst. Ein Eintrag ohne Urheber steht als Systemlauf da und nicht als Luecke -- der Zeitplan des Verzeichnisabgleichs hat keinen Menschen hinter sich. Am Lauf selbst stehen seine Eintraege eingeklappt in der Abarbeitungsansicht. Kein eigenes Recht dafuer: wer den Lauf sehen darf, darf auch sehen, was an ihm geschehen ist. Dafuer traegt Protokoll jetzt eine kundeId, wie CLAUDE.md es fuer jede kundenbezogene Zeile verlangt. Ohne sie liess sich die Mandantensicht nicht anwenden, ohne je Eintrag die Entitaet nachzuschlagen. Leer heisst global; laufbezogene Eintraege bleiben ohne, weil der Lauf die bessere Quelle ist. Die Migration fuehrt bestehende Eintraege nach -- an echten Daten gefahren, 59 von 733 bekamen einen Kunden. Ein Eintrag, der sich keinem Kunden zuordnen laesst, wird einem beschraenkten Benutzer nicht gezeigt: vorher/nachher koennen einen Hostnamen enthalten, und bei einer Mandantengrenze wird im Zweifel zugemacht. Keine Tabelle, sondern Karten: sieben Spalten sind bei 390 px nicht darstellbar, ohne horizontal zu scrollen. Im gebauten Stand durchgeklickt: blaettern, filtern, Werte aufklappen, Abschnitt am Lauf, 390 px auf beiden Seiten ohne Scrollen. Closes #35
199 lines
9.6 KiB
Markdown
199 lines
9.6 KiB
Markdown
# Verwaltung
|
||
|
||
Der Bereich **Admin** gehört der Rolle **Administrator**. Oben schalten Reiter um:
|
||
**Einstellungen**, **Benutzer**, **Abteilungen** und — nur im Modus Intern — **Verzeichnis**.
|
||
|
||
Abteilungen sind in [Kapitel 05](05-mitarbeiter-geraete.md) beschrieben, das Verzeichnis in
|
||
[Kapitel 06](06-verzeichnis.md).
|
||
|
||
## Benutzer und Rollen
|
||
|
||

|
||
|
||
**Benutzer** sind die Menschen, die Laufzettel bedienen. Nicht zu verwechseln mit den Mitarbeitern
|
||
aus dem Verzeichnis: die melden sich hier nie an.
|
||
|
||
Je Konto stehen Name, E-Mail, die Anmeldewege (**Anbieter**, **Passwort** oder „kein Anmeldeweg“) und
|
||
der Zeitpunkt der letzten Anmeldung. Rechts:
|
||
|
||
- die **Rollenwahl** mit dem Knopf **Setzen**,
|
||
- der Schalter **aktiv** / **deaktiviert**.
|
||
|
||
Beim eigenen Konto steht statt des Schalters **das bist du** — niemand soll sich selbst aussperren.
|
||
|
||
Ein deaktiviertes Konto wird auch mit einem noch gültigen Sitzungs-Cookie abgewiesen, und eine
|
||
geänderte Rolle greift sofort: Rolle und Aktiv-Status werden bei jeder Anfrage aus der Datenbank
|
||
gelesen.
|
||
|
||
**Bei Anmeldung über den Anbieter wird die Rolle aus den Gruppen gesetzt und überschreibt eine hier
|
||
gewählte.** Wer eine Rolle dauerhaft ändern will, ändert sie also in der Gruppenzuordnung des
|
||
Anbieters, nicht hier.
|
||
|
||
Welche Rolle was darf, steht in [Kapitel 01](01-erste-schritte.md).
|
||
|
||
### Ein lokales Konto anlegen
|
||
|
||
Unter **Lokales Konto anlegen**: **Name**, **E-Mail**, **Rolle** und **Passwort (mindestens 12
|
||
Zeichen)**, dann **Konto anlegen**. Das Passwort wird nur als Hash gespeichert.
|
||
|
||
Gedacht ist das als **Notfallzugang**, falls der Anmeldeanbieter ausfällt. Ist der lokale Login
|
||
abgeschaltet, sagt die Seite das; neue Konten entstehen dann beim ersten Anmelden über den Anbieter
|
||
von selbst.
|
||
|
||
## Einstellungen
|
||
|
||

|
||
|
||
### Organisation
|
||
|
||
Der Name des eigenen Betriebs. Im Modus **Intern** erscheint er nirgends in der Oberfläche — er wird
|
||
erst sichtbar, wenn du auf Dienstleistung umstellst, denn dann wird daraus der erste Kunde.
|
||
|
||
### Namensregeln
|
||
|
||
Vorlagen für **UPN**, **Anmeldename (sam)**, **Mail** und **Hostname**. Beim Start eines Laufs
|
||
berechnet Laufzettel daraus Vorschläge, die der Techniker überschreiben kann — der Knopf dafür heißt
|
||
dort **Namen aus den Regeln vorschlagen**.
|
||
|
||
Platzhalter in den Regeln:
|
||
|
||
| Platzhalter | Bedeutung |
|
||
|---|---|
|
||
| `{vorname}` | der Vorname |
|
||
| `{nachname}` | der Nachname |
|
||
| `{v}` | der erste Buchstabe des Vornamens |
|
||
| `{nnn}` | eine fortlaufende Nummer |
|
||
| `{kundenkuerzel}` | das Kürzel des Kunden (nur Modus Dienstleistung) |
|
||
|
||
Beispiele: `{vorname}.{nachname}@firma.de` für den UPN, `{v}{nachname}` für den Anmeldenamen,
|
||
`PC-{nnn}` für den Hostname.
|
||
|
||
Ein Vorschlag ist ein Angebot, keine Zusage: **verbindlich wird ein Name erst beim Anlegen im
|
||
Verzeichnis.** Sind keine Regeln hinterlegt, sagt der Start-Dialog das und lässt die Felder leer.
|
||
|
||
### Sperr-OU
|
||
|
||
Die Ziel-OU für deaktivierte Konten, etwa `OU=Gesperrt,OU=Benutzer,DC=firma,DC=local`. Sie füllt den
|
||
Platzhalter `{{ou_gesperrt}}` und wird beim Offboarding gebraucht.
|
||
|
||
**Speichern** übernimmt alle drei Abschnitte auf einmal.
|
||
|
||
### Adresse für die QR-Codes
|
||
|
||
Ganz unten steht, welche Adresse in den gedruckten QR-Codes landet, als Beispiel ausgeschrieben:
|
||
`https://…/t/LZ-7K3F9Q`.
|
||
|
||
**Sie lässt sich hier nicht ändern.** Sie kommt aus der Umgebung der Anwendung, weil gedruckte
|
||
Aufkleber sonst ins Leere zeigen würden. Steht dort „APP_URL ist nicht gesetzt — Etiketten können
|
||
noch nicht gedruckt werden“, muss das erst beim Betrieb der Anwendung eingetragen werden. **Drucke
|
||
vorher keine Etiketten.**
|
||
|
||
## Schnellstart je Gerätetyp
|
||
|
||
Auf der Seite eines Geräts stehen oben die Vorlagen, die dort am häufigsten gebraucht werden — ein
|
||
Klick, und der Lauf steht. Welche das sind, wird unter **Verwaltung → Schnellstart** festgelegt, je
|
||
Gerätetyp getrennt.
|
||
|
||
Zu jedem Gerätetyp steht dort die Liste in der Reihenfolge, in der die Kacheln erscheinen. Mit den
|
||
Pfeilen wird umsortiert, mit dem **×** entfernt, und über **Vorlage hinzufügen** kommt eine dazu.
|
||
Nach jeder Änderung steht „nicht gespeichert“ daneben, bis **Speichern** gedrückt ist — die
|
||
Reihenfolge wandert als Ganzes in die Datenbank, nicht Zeile für Zeile.
|
||
|
||
Drei Dinge, die hier anders sind als erwartet:
|
||
|
||
- **Zur Auswahl stehen nur veröffentlichte, nicht archivierte Vorlagen.** Ein Entwurf taugt nicht:
|
||
aus ihm lässt sich kein Lauf starten, die Kachel täte also nichts.
|
||
- **Eine archivierte Vorlage verschwindet von selbst** aus dem Schnellstart. Niemand muss hier
|
||
aufräumen, nachdem eine Vorlage weggelegt wurde.
|
||
- **Eine Vorlage, die nur für einen Kunden gilt**, lässt sich zuweisen und wird mit dem Kundennamen
|
||
gezeigt. Sie erscheint trotzdem nur bei den Geräten dieses Kunden.
|
||
|
||
**Ein leerer Schnellstart ist kein Mangel.** Unter **Vorlage zuweisen** steht auf der Geräteseite
|
||
jede Vorlage, die zu diesem Gerät passt, und der Start-Dialog kennt sie ohnehin alle.
|
||
|
||
Sobald hier einmal gespeichert wurde, hält sich der Seed heraus: die mitgelieferten Vorgaben werden
|
||
danach nicht mehr nachgelegt. Das ist gewollt — eine entfernte Kachel soll nicht beim nächsten
|
||
Einrichtungslauf zurückkommen.
|
||
|
||
## Betriebsmodus umstellen
|
||
|
||

|
||
|
||
Oben auf der Einstellungsseite steht der aktuelle Modus mit einer Erklärung und darunter der Weg zum
|
||
anderen. Der Wechsel braucht keinen Neustart.
|
||
|
||
**Zu Dienstleistung wechseln** klappt einen Dialog auf, der die Folgen aufzählt — dieselbe Prüfung,
|
||
die der Wechsel danach durchsetzt, keine nachgebaute zweite Wahrheit:
|
||
|
||
- Die bisherige eigene Organisation wird zum **ersten Kunden**.
|
||
- Alle Geräte, Personen, Abteilungen und Läufe bleiben daran hängen.
|
||
- Kunden werden zu einer sichtbaren Ebene: Kundenliste, Kundenwahl beim Start eines Laufs,
|
||
Kundenkürzel auf den Etiketten.
|
||
|
||
Dafür trägst du **Name als erster Kunde** und **Kürzel (2–6 Zeichen)** ein, setzt das Häkchen „Ja,
|
||
den Betriebsmodus jetzt auf … umstellen“ und drückst **Auf Dienstleistung umstellen**.
|
||
|
||
Der Rückweg ist enger: **er geht nur mit genau einem nicht archivierten Kunden.**
|
||
|
||

|
||
|
||
Gibt es mehr, steht dort „Wechsel zu Intern gerade nicht möglich“ mit der Zahl und dem Hinweis, die
|
||
übrigen Kunden zu archivieren. Geht es, lauten die Folgen:
|
||
|
||
- Der einzige Kunde wird zur eigenen Organisation und **verschwindet aus der Oberfläche**.
|
||
- Alle Daten bleiben erhalten, nur die Kundenebene wird ausgeblendet.
|
||
- Archivierte Kunden bleiben archiviert und tauchen nicht wieder auf.
|
||
|
||
Der Wechsel ist also in beide Richtungen eine Datenänderung und kein Datenverlust. Trotzdem ist er
|
||
keine Kleinigkeit: er ändert, was die ganze Anwendung zeigt — deshalb das Häkchen.
|
||
|
||
## Kunden
|
||
|
||

|
||
|
||
Den Menüpunkt **Kunden** gibt es nur im Modus Dienstleistung. Geräte, Personen, Abteilungen und
|
||
Läufe hängen an genau einem Kunden, und diese Grenze ist nicht nur eine Anzeige: ein Lauf kann kein
|
||
Gerät, keine Person und keine Abteilung eines fremden Kunden wählen.
|
||
|
||
Je Kunde stehen das **Kürzel**, der Name und die Zählung (Geräte, Personen, Läufe). Der eigene
|
||
Betrieb trägt das Kennzeichen **eigene Organisation**.
|
||
|
||
**Kunde anlegen** verlangt Name und Kürzel. Das **Kürzel erscheint auf den Etiketten** und lässt
|
||
sich in der Hostname-Regel als `{kundenkuerzel}` verwenden — wähl es also so, dass man es auf einem
|
||
Aufkleber erkennt.
|
||
|
||
**Bearbeiten** ändert Name, Kürzel und Notizen. **archivieren** nimmt einen Kunden außer Dienst;
|
||
gelöscht wird nichts, sonst verlöre das Archiv seine Bezüge. Die eigene Organisation lässt sich
|
||
nicht archivieren.
|
||
|
||
Eine Vorlage lässt sich **einem** Kunden zuordnen („nur Musterfirma GmbH“) oder für alle gelten
|
||
lassen. Eine kundenspezifische Vorlage startet keinen Lauf bei einem anderen Kunden.
|
||
|
||
## Protokoll
|
||
|
||
Laufzettel schreibt ein Protokoll über das, was nachvollziehbar bleiben muss: Rollenänderungen,
|
||
veröffentlichte Vorlagen, eingespielte Vorlagen, archivierte und zurückgeholte Läufe, angelegte und
|
||
gelöschte Verzeichnisquellen, den Moduswechsel. Ein Protokolleintrag verliert seinen Urheber nie, und
|
||
geändert oder gelöscht wird keiner.
|
||
|
||
Zu sehen ist das unter **Verwaltung → Protokoll**, neueste Einträge zuerst, fünfzig je Seite. Vier
|
||
Filter stehen darüber:
|
||
|
||
- **Aktion oder Lauf** — Volltext über die Aktion, die Art des Eintrags und den Titel des Laufs.
|
||
„Rolle“ findet jede Rollenänderung, „archiviert“ jede Archivierung.
|
||
- **Urheber** — zur Auswahl stehen nur die, die wirklich Einträge haben.
|
||
- **von** und **bis** — der *bis*-Tag zählt mit; „bis heute“ enthält also, was heute passiert ist.
|
||
|
||
Hinter **Werte** stehen die Felder vor und nach der Änderung, soweit sie festgehalten wurden.
|
||
Eingeklappt, weil sie lang werden können.
|
||
|
||
**Ein Eintrag ohne Urheber ist keine Lücke.** Dort steht „Systemlauf“: der Zeitplan des
|
||
Verzeichnisabgleichs läuft ohne Menschen dahinter, und das soll man sehen können.
|
||
|
||
Was an einem **einzelnen Lauf** geschehen ist, steht außerdem unten in seiner Abarbeitungsansicht
|
||
unter **Protokoll dieses Laufs**, eingeklappt. Wer den Lauf sehen darf, sieht auch dessen Einträge —
|
||
dafür braucht es keine Administratorrolle.
|
||
|
||
Ein **erzeugtes Passwort steht nie im Protokoll** — es wird nirgends gespeichert. Gäbe es ein Feld
|
||
dafür, wäre die Versuchung groß, es „nur fürs Protokoll“ mitzuschreiben.
|