feat(platzhalter): Aufloesung, Namensregeln und Shell-Maskierung (#26)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s

This commit was merged in pull request #26.
This commit is contained in:
2026-09-25 13:30:31 +00:00
parent f85bc87324
commit eec5de404a
21 changed files with 4069 additions and 166 deletions
+31
View File
@@ -89,6 +89,37 @@ export function istEingebaut(schluessel: string): boolean {
return EINGEBAUTE_SCHLUESSEL.has(schluessel);
}
/**
* Eingebaute Platzhalter, die eine Vorlagenvariable **nicht** belegen darf.
*
* Es sind die fuenf, die eine Aussage ueber **wer, wann und fuer wen** machen:
*
* - `techniker` und `datum` unterschreiben einen Befehl. Eine Variable dafuer
* hiesse, dass in einem fertigen Befehl ein fremder Name und ein falsches
* Datum stehen koennen, ohne dass es auffaellt.
* - `kunde` und `kundenkuerzel` sind im Modus INTERN ausdruecklich leer (#008).
* Eine Variable haette die Kundenebene in den Befehl zurueckgeholt, die es
* dort nicht gibt.
* - `generiertes_passwort` wird ohnehin vor jeder Zuordnung abgefangen; hier
* steht es, damit niemand eine Variable anlegt, die nie wirkt.
*
* Alles andere bleibt erlaubt, und das ist wichtig: beim Onboarding gibt es die
* Person im Verzeichnis noch nicht, die Vorlage fragt `upn`, `sam` und `mail`
* also selbst ab. Genau dafuer sind Variablen da.
*/
export const GESPERRTE_VARIABLENNAMEN: ReadonlySet<string> = new Set([
"techniker",
"datum",
"kunde",
"kundenkuerzel",
"generiertes_passwort",
]);
/** Darf eine Vorlagenvariable so heissen? */
export function istAlsVariableErlaubt(schluessel: string): boolean {
return !GESPERRTE_VARIABLENNAMEN.has(schluessel);
}
/**
* Die Platzhalter, die weder eingebaut noch als Variable definiert sind.
*