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
+11 -11
View File
@@ -9,7 +9,7 @@ import type { EffectivePermissions } from '@/lib/auth/permissions'
import type { Prisma } from '@afis/db'
/**
* Abteilungen — die Ebene über der Personalakte.
* Abteilungen - die Ebene über der Personalakte.
*
* Der Aufbau ist derselbe wie bei der Personalakte, nur eine Stufe höher: was
* zu einer Abteilung aktenkundig ist, **wird abgeleitet und nicht
@@ -17,7 +17,7 @@ import type { Prisma } from '@afis/db'
* wenn eine beteiligte Person dieser Abteilung angehört.
*
* Das ist die wichtigste Festlegung hier. Eine eingetragene Abteilung an der
* Akte wäre schnell veraltet — Leute wechseln, Beteiligte kommen dazu — und
* Akte wäre schnell veraltet - Leute wechseln, Beteiligte kommen dazu - und
* niemand würde sie nachpflegen. Abgeleitet stimmt sie immer.
*
* Jede Abfrage läuft durch dieselben Sichtbarkeitsfragmente wie überall sonst.
@@ -31,7 +31,7 @@ export type DepartmentSummary = {
description: string | null
minClearance: number
isArchived: boolean
/** `null`, wenn der Fragende Personalakten gar nicht sehen darf. Nicht `0` —
/** `null`, wenn der Fragende Personalakten gar nicht sehen darf. Nicht `0` -
eine Null wäre die Auskunft „hier ist niemand", und die steht ihm nicht zu. */
memberCount: number | null
}
@@ -60,7 +60,7 @@ export async function listDepartments(
})
if (abteilungen.length === 0) return []
// Die Mitgliederzahl zählt nur, was der Nutzer auch sehen dürfte — sonst
// Die Mitgliederzahl zählt nur, was der Nutzer auch sehen dürfte - sonst
// verriete die Zahl, wie viele Personalakten über seiner Stufe liegen.
if (!darfPersonal(p)) {
return abteilungen.map((abteilung) => ({ ...abteilung, memberCount: null }))
@@ -116,7 +116,7 @@ export async function listMembers(p: EffectivePermissions, departmentId: string)
*
* Über die Beteiligten und deren Personalakten. Beide Richtungen zählen: ob
* jemand Ermittler oder Betroffener ist, ändert nichts daran, dass der Fall
* die Abteilung betrifft — für die Zugehörigkeit ist die Rolle unerheblich,
* die Abteilung betrifft - für die Zugehörigkeit ist die Rolle unerheblich,
* für den Zugriff nicht (siehe lib/cases/terms.ts).
*/
function caseOfDepartment(departmentId: string): Prisma.CaseWhereInput {
@@ -147,7 +147,7 @@ export async function listDepartmentCases(
}
/**
* Dokumente der Abteilung — abgeleitet wie alles hier.
* Dokumente der Abteilung - abgeleitet wie alles hier.
*
* Zwei Wege dorthin: das Dokument hängt an der Personalakte eines Mitglieds,
* oder an einer Fallakte, die diese Abteilung betrifft. Ein Dokument
@@ -190,7 +190,7 @@ export type Slice = { label: string; value: number }
* Womit diese Abteilung aktenkundig ist, nach Fallart.
*
* Gezählt wird über **dieselbe** Bedingung wie die Liste. Ein Diagramm, das
* mehr Fälle zeigt als die Liste hergibt, wäre selbst eine Auskunft — genau
* mehr Fälle zeigt als die Liste hergibt, wäre selbst eine Auskunft - genau
* wie ein Facettenzähler. Siehe harte Regel 6.
*/
export async function caseTypesOfDepartment(
@@ -211,7 +211,7 @@ export async function caseTypesOfDepartment(
/**
* Die Gegenrichtung: welche Abteilung wie viele Fälle hat.
*
* Das ist die Frage, mit der die Übersicht der Abteilungen anfängt — wo häuft
* Das ist die Frage, mit der die Übersicht der Abteilungen anfängt - wo häuft
* sich etwas. Auch hier zählt nur, was der Fragende sehen darf.
*/
export async function casesPerDepartment(
@@ -219,7 +219,7 @@ export async function casesPerDepartment(
redactedLabel: string,
): Promise<Slice[]> {
// **Alle** Abteilungen, auch die über der eigenen Stufe. Die Zahlen zählen
// weiterhin nur Fälle, die der Fragende sehen darf — was er hier erfährt,
// weiterhin nur Fälle, die der Fragende sehen darf - was er hier erfährt,
// ist also nicht, was in einer verborgenen Abteilung steht, sondern dass
// einige der ihm bekannten Fälle zu einer gehören, deren Namen er nicht
// kennt. Ein Diagramm, das sie stillschweigend weglässt, wäre die
@@ -281,7 +281,7 @@ export async function createDepartment(
input: { key: string; name: string; description?: string | null; minClearance: number },
): Promise<{ key: string }> {
if (!darfVerwalten(p)) throw new AccessError('no-permission')
// Eine Abteilung anzulegen, die man selbst nicht sieht, ergibt keinen Sinn —
// Eine Abteilung anzulegen, die man selbst nicht sieht, ergibt keinen Sinn -
// dieselbe Regel wie bei Akten und Dokumenten.
if (!p.isAdmin && input.minClearance > p.clearanceLevel) {
throw new AccessError('clearance-too-low')
@@ -367,7 +367,7 @@ export async function updateDepartment(
}
/**
* Eine Person einer Abteilung zuordnen — oder die Zuordnung aufheben.
* Eine Person einer Abteilung zuordnen - oder die Zuordnung aufheben.
*
* Setzt dasselbe Recht voraus wie das Ändern der Personalakte selbst: die
* Zugehörigkeit steht in der Akte, und wer sie nicht schreiben darf, darf auch