Quelltext des aktuellen Standes
-- ============================================================
-- Anträge: Wer als betroffene Person eingetragen werden darf
-- ============================================================
-- Bisher konnte jede antragsberechtigte Person jede beliebige Person aus dem
-- Verzeichnis als betroffen eintragen. `subject_scope` grenzt das je Vorlage
-- ein. Standard ist `all` – der bisherige Stand, damit bestehende Vorlagen
-- unverändert weiterlaufen und die Einschränkung bewusst gesetzt wird.
--
-- all – jede aktive Person aus dem Verzeichnis
-- reports – nur die eigene Person und die direkt unterstellten Personen
--
-- Fehler beim erneuten Lauf (Spalte existiert bereits) sind benigne.
ALTER TABLE `workflows`
ADD COLUMN `subject_scope` ENUM('all','reports') NOT NULL DEFAULT 'all'
COMMENT 'Wer als betroffene Person wählbar ist' AFTER `subject_mode`;
-- Die Unterstellung wird über manager_email bzw. manager_ldap_dn aufgelöst;
-- beide Wege bekommen einen Index, damit die Prüfung je Antrag nicht über die
-- gesamte Personentabelle läuft.
ALTER TABLE `directory_persons`
ADD INDEX `idx_person_manager_email` (`manager_email`);
ALTER TABLE `directory_persons`
ADD INDEX `idx_person_manager_dn` (`manager_ldap_dn`(191));