3.2 KiB
3.2 KiB
#012 M7 – Platzhalter, Namensregeln, Escaping
Status: offen Meilenstein: v0.1.0 Labels: phase-1, backend, security Geschätzt: 8 h Tatsächlich: –
Ziel
Reine, framework-freie Service-Schicht mit dichter Testabdeckung. Hier entstehen die fertigen PowerShell-Befehle, die der Techniker kopiert — und hier darf nichts schiefgehen, weder beim Escaping noch beim generierten Passwort.
Aufgaben
- Platzhalter-Auflösung
{{key}}in Schritt-Titel, Hilfetext und Befehlstext - Eingebaut aus Gerät und Lauf:
{{hostname}},{{seriennummer}},{{inventarnummer}},{{ticket}},{{datum}},{{techniker}}; im ModusDIENSTLEISTUNGzusätzlich{{kunde}}und{{kundenkuerzel}}, im ModusINTERNleer - Eingebaut aus dem Mitarbeiter:
{{mitarbeiter}}(Alias{{benutzer}}),{{vorname}},{{nachname}},{{upn}},{{sam}},{{mail}},{{abteilung}},{{titel}},{{vorgesetzter}},{{vorgesetzter_sam}},{{dn}},{{ou}} - Aus der gewählten Abteilung:
{{ou}}falls nicht vom Mitarbeiter,{{gruppen}}kommagetrennt {{ou}}eines synchronisierten Mitarbeiters ist der Eltern-Container seinesdn(alles nach dem ersten Komma)- Dazu die in der Vorlage definierten Variablen; unbekannte Platzhalter bleiben sichtbar stehen
{{generiertes_passwort}}: 20 Zeichen aus Groß, Klein, Ziffern und Sonderzeichen ohne verwechselbare Zeichen, je Anzeige neu erzeugt, nie gespeichert; Hinweis „Passwort sofort in den Passwortmanager übernehmen“; in der Druckansicht[Passwort – nicht gespeichert]- Namensregeln (
Einstellung.namensregelnglobal, im ModusDIENSTLEISTUNGzusätzlichKunde.namensregelnmit Fallback):upn,sam(höchstens 20 Zeichen),mail,hostname - Transliteration (ä→ae, ö→oe, ü→ue, ß→ss, Akzente entfernt), Kleinschreibung, Leerzeichen entfernt,
{nnn}-Zähler,{v}für den ersten Buchstaben des Vornamens,{kundenkuerzel} - Shell-Escaping je Shell: PowerShell (doppelte Anführungszeichen verdoppeln, Backtick maskieren), Bash, Cmd
- HTML-Escaping ersetzter Werte; Markdown im Hilfetext sicher gerendert, kein rohes HTML
- „Alle Befehle als Skript kopieren“ je Abschnitt: alle
BEFEHL-Schritte in Reihenfolge, getrennt durch Leerzeilen, je mit# Schritt: <Titel>davor, Zeilenumbruch passend zur Shell
Akzeptanzkriterien
- Test: „Jörg Müller-Lüdenscheid“ ergibt
joerg.mueller-luedenscheid@firma.deundjmuellerluedensch(auf 20 Zeichen gekürzt) - Test:
{{generiertes_passwort}}erscheint im angezeigten Befehl, steht aber nicht inSchrittergebnis,Kommentar,Protokolloder der Druckansicht; zwei Aufrufe liefern verschiedene Passwörter - Test: ein Wert mit
"und`wird für PowerShell korrekt maskiert und bricht den Befehl nicht - Test: unbekannte Platzhalter bleiben als
{{key}}stehen - Test:
{{ou}}wird ausCN=Maria Huber,OU=Buchhaltung,OU=Benutzer,DC=firma,DC=localzuOU=Buchhaltung,OU=Benutzer,DC=firma,DC=local - Test: Skript-Kopie liefert die Befehle in Abschnittsreihenfolge mit Kommentarzeilen
- Test: im Modus
INTERNsind{{kunde}}und{{kundenkuerzel}}leer - Test: ein Wert mit
<script>landet HTML-escaped in der Anzeige