-- Dossier: Personalakte und Abteilung als vollständiger Abzug. -- -- Bisher liess sich eine einzelne Fallakte und ein einzelnes Dokument als PDF -- speichern. Wer den Stand zu einer Person brauchte, musste beides einzeln -- abrufen und von Hand zusammenlegen - und wusste danach nicht, ob er alles -- hatte. -- -- Der Abzug ist gedeckelt: der Abrufer wählt die höchste Stufe, die -- aufgenommen wird. Das ist keine Zugriffsprüfung, sondern eine Entscheidung -- über den Umfang - die Prüfung bleibt die Freigabestufe des Abrufers, und -- `maxLevel` liegt nie darüber. Was dadurch wegfällt, steht als Vermerk im -- PDF: eine gekürzte Mappe darf nicht wie eine vollständige aussehen. -- -- `maxLevel` gehört in den Zwischenspeicherschlüssel, sonst bekäme ein Abruf -- bis Stufe 1 die Datei eines Abrufs bis Stufe 4. ALTER TYPE "ExportKind" ADD VALUE IF NOT EXISTS 'PERSONNEL'; ALTER TYPE "ExportKind" ADD VALUE IF NOT EXISTS 'DEPARTMENT'; ALTER TABLE "ExportJob" ADD COLUMN "maxLevel" INTEGER; -- Nie mehr aufnehmen, als der Abrufer selbst sehen darf. Die Anwendung deckelt -- ohnehin an drei Stellen; hier steht es als Bedingung, die nicht umgangen -- werden kann. ALTER TABLE "ExportJob" ADD CONSTRAINT "ExportJob_maxLevel_nicht_ueber_stufe" CHECK ("maxLevel" IS NULL OR "maxLevel" <= "clearanceAtTime");