Einwilligungen & Widerrufe
Im Rahmen diverser gesetzlicher Vorschriften, wird es abverlangt, Einwilligungen und Widerrufe zu verschiedenen Aktionen, zu dokumentieren.
component/consent stellt eine generische Komponente dar, die es möglich macht, Datensätze zu erstellen, um Einwilligungen und Widerrufe zu dokumentieren..
Aufbau des Plugins
component/consent bietet öffentliche Methoden an, um Einwilligungen und Widerrufe zu erstellen, den aktuellen Zustand eines Nutzers zu einem bestimmten Thema zu ermitteln, Übersichten der bisherigen Einwilligungen und Widerrufe eines Nutzers zu erstellen etc.
consentTemplate
Einwilligungen und Widerrufe sollten primär über eine Vorlage erstellt werden. Vorlagen werden während der Installation erstellt. Ein Plugin, das einen Vorgang beinhaltet, der eine Einwilligung oder einen Widerruf benötigen würde, sollte eine entsprechende Vorlage bei der Installation (enable-Methode) erstellen.
Eine Vorlage (consentTemplate) besitzt folgende Eigenschaften:
Bezeichnung | Property | Beschreibung |
---|---|---|
Schlüssel | templateKey | Zeichenkette. Identifikationsfeld - dieser Wert sollte eindeutig sein. Wird üblicherweise über den Code definiert, wenn eine Einwilligung oder ein Widerruf über eine Vorlage erstellt wird. |
Gegenstand | subject | Zeichenkette. Der Gegenstand der Einwillgung/des Widerruf (z.B. Newsletteranmeldung, Shop-Registrierung etc.). |
Inhalt | content | Text. Eine genaue Beschreibung über den Inhalt, für den die Einwilligung/der Widerruf benötigt wird. |
Lebenszeit (Tage) | lifetime | Ganzzahl. Die Einwilligung/der Widerruf soll ab dem Erstellungszeitpunkt für diese Zeitspanne gültig sein. |
Entitäten | assignedEntities | Zeichenkette. Eine whitelist an Entitätstypen. Das Consentmanagement bietet anhand dieser Whitelist Funktionen in Base an. |
Konfiguration
Das Plugin besitzt keine Konfigurationsmöglichkeiten.
Beispiel
Um Einwilligungen und Widerrufe zu erstellen, kann man sich den öffentlichen Methoden von component/consent bedienen. Im folgenden Beispiel wird ein consent-Datensatz(Einwilligung) für einen shopUser erstellt. Dazu wird der Key der Vorlage benötigt, der von viewRegister definiert wird. Hinzu kommt die Identifikation des shopUsers (E-Mail). Optional kann die Entität des shopUsers übergeben werden. In diesem Fall wird eine Beziehung zwischen consent & shopUser aufgebaut.
Anhand des templateKey wird der entsprechende consentTemplate-Datensatz gefunden. Dieser Datensatz wird als Vorlage für die Einwilligung benutzt. Die Einwilligung erstellt eine Momentaufnahme der Vorlage, indem sie den Gegenstand und den Inhalt der Vorlage zu diesem Zeitpunkt übernimmt.
/**
* @param user\lib\entity\shopUser $shopUser
*
* @throws \Doctrine\DBAL\Exception\NotNullConstraintViolationException
*/
private function createConsent(user\lib\entity\shopUser $shopUser) {
$this
->staticAppController(consent\engine::class)
->consentByTemplateKey(
viewRegister\engine::CONSENT_TEMPLATE_KEY, //Ein String, der eine Vorlage für eine Einwilligung/Widerruf darstellt (z.B. Newsletteranmeldung)
$shopUser->getMail(), //Identifikationsmerkmal der einwilligenden Entität
$shopUser //einwilligende Entität (optional)
)
->save(true)
;
}