Gedankenstriche durch Bindestriche ersetzt
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s

375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
This commit is contained in:
Harlekin
2026-09-04 08:54:52 +02:00
parent 38be773636
commit e0b03ea336
210 changed files with 368 additions and 368 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ import { createHash } from 'node:crypto'
* Dokument geben, das für eine höhere Stufe gerendert wurde.
*
* Der Stand (`updatedAt`) sorgt dafür, dass eine geänderte Akte neu gerendert
* wird — ein Export darf nie einen älteren Stand zeigen, als die Akte hat.
* wird - ein Export darf nie einen älteren Stand zeigen, als die Akte hat.
*/
export function exportCacheKey(input: {
kind: string
+1 -1
View File
@@ -6,7 +6,7 @@ import type { EffectivePermissions } from '@/lib/auth/permissions'
/**
* Vollständiger JSON-Abzug als Umzugs- und Notfallformat.
*
* **Ohne Stufenfilterung**, nur mit Recht `admin`, immer protokolliert — so
* **Ohne Stufenfilterung**, nur mit Recht `admin`, immer protokolliert - so
* steht es in docs/08-suche-und-export.md. Das ist die eine Stelle im System,
* an der die Klassifizierung nicht greift, und sie ist deshalb absichtlich
* unbequem: kein Knopf an einer Akte, sondern eine eigene Seite im
+1 -1
View File
@@ -5,7 +5,7 @@ import type { EffectivePermissions } from '@/lib/auth/permissions'
/**
* Die Druckansicht dient zwei Aufrufern: dem PDF-Dienst mit Zeichen und einem
* Menschen, der sie sich ansieht. Diese Funktion steht in einer eigenen Datei,
* weil sie `next-auth` lädt — der Zeichenpfad soll das nicht müssen.
* weil sie `next-auth` lädt - der Zeichenpfad soll das nicht müssen.
*/
export async function permissionsForPrint(
token: string | null | undefined,
+1 -1
View File
@@ -11,7 +11,7 @@ import type { EffectivePermissions } from '@/lib/auth/permissions'
*
* Die Stufe kommt dabei nicht aus dem Zeichen, sondern wird frisch aufgelöst
* und dann auf die im Zeichen vermerkte **gedeckelt**. Damit kann ein Zeichen
* nie mehr zeigen, als der Abrufer beim Anfragen sehen durfte — und auch nicht
* nie mehr zeigen, als der Abrufer beim Anfragen sehen durfte - und auch nicht
* mehr, als er jetzt noch darf, falls ihm inzwischen Rechte entzogen wurden.
*/
export async function permissionsFromRenderToken(
+4 -4
View File
@@ -18,14 +18,14 @@ import type { EffectivePermissions } from '@/lib/auth/permissions'
*
* 1. **Der Export respektiert die Stufe des Abrufers.** Die Druckansicht
* rendert mit seinen Rechten, gesperrte Felder erscheinen als Schwärzung
* mit Vermerk — nicht weggelassen, sonst merkt der Empfänger nicht, dass
* mit Vermerk - nicht weggelassen, sonst merkt der Empfänger nicht, dass
* er eine gekürzte Fassung hat.
* 2. **Wasserzeichen** auf jeder Seite: Name, Zeitstempel, Stufe.
* 3. **Jeder Export wird protokolliert**, ausnahmslos und mit Stufe,
* Zeitpunkt und Anlass.
*
* Wer exportieren darf, entscheidet allein die Freigabestufe: **mindestens die
* des Ziels.** Das ist strenger als das Lesen — wer als Beteiligter
* des Ziels.** Das ist strenger als das Lesen - wer als Beteiligter
* ausnahmsweise in eine höher eingestufte Akte darf, darf sie deshalb noch
* nicht ausser Haus geben. Und es ist einfacher als das frühere
* Vier-Augen-Verfahren, das ab Stufe 3 eine zweite Unterschrift verlangte:
@@ -38,7 +38,7 @@ export type ExportTarget =
| { kind: 'DOCUMENT'; documentNumber: string }
/**
* Legt einen Auftrag an — oder gibt einen fertigen zurück, wenn genau dieser
* Legt einen Auftrag an - oder gibt einen fertigen zurück, wenn genau dieser
* Stand schon einmal für diese Stufe gerendert wurde.
*/
export async function requestExport(
@@ -71,7 +71,7 @@ export async function requestExport(
return { jobId: fertig.id, status: 'READY' }
}
// Läuft schon einer für denselben Stand? Dann daran hängen — aber der
// Läuft schon einer für denselben Stand? Dann daran hängen - aber der
// Protokolleintrag entsteht trotzdem. „Jeder Export wird protokolliert"
// heisst jeder Abruf, nicht jeder Rendervorgang: wer sich an einen fremden
// Auftrag hängt, bekommt dieselbe Datei und muss genauso darin stehen.
+1 -1
View File
@@ -35,7 +35,7 @@ export function createRenderToken(claim: Omit<RenderClaim, 'expiresAt'>): string
}
/**
* Prüft das Zeichen. Gibt `null` zurück, wenn irgendetwas nicht stimmt — der
* Prüft das Zeichen. Gibt `null` zurück, wenn irgendetwas nicht stimmt - der
* Aufrufer macht daraus 404, nicht 403: dass es die Druckansicht gibt, geht
* niemanden etwas an, der kein gültiges Zeichen hat.
*/
+1 -1
View File
@@ -4,7 +4,7 @@ import { createHash } from 'node:crypto'
* Ein winziger ZIP-Schreiber, nur „gespeichert" ohne Kompression.
*
* Eigener Code statt einer Abhängigkeit, weil der Inhalt eines Sammelexports
* PDFs und bereits neu kodierte Bilder sind — beides ist komprimiert, ein
* PDFs und bereits neu kodierte Bilder sind - beides ist komprimiert, ein
* Deflate darüber bringt nichts und kostet nur CPU auf einem Heimserver. Was
* bleibt, ist das Behälterformat, und das sind achtzig Zeilen.
*