Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DSGVO konformes Löschen von Mitgliedern, implementiert #213 #224

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

JohannMaierhofer
Copy link

@JohannMaierhofer JohannMaierhofer commented May 5, 2024

Mit diesem Feature lassen sich Mitglieder DSGVO konform löschen (siehe Issue #213). Es werden alle Datensätze die auf das Mitglied verweisen ebenfalls gelöscht. Mails werden nur gelöscht wenn das Mitglied der einzige Empfänger war. Buchungen in den Konten bleiben erhalten, einerseits wegen der Aufbewahrungsfristen und andererseits weil sonst die Buchführung auch nicht mehr stimmen würde.
Der Löschen Dialog gibt eine entsprechende Warnung aus:
Screenshot_20240505_094937

Zu den Änderungen:

  • Bei allen Tabellen die das Mitglied referenzieren muss der Foreign Key auf CASCADE gesetzt werden. Das war nicht bei allen Tabellen der Fall. Die Änderung passiert im Migrationscode.
  • Bei Lastschrift habe ich auch die Referenz auf Kursteilnehmer auf CASCADE gesetzt damit man auch die löschen kann.
  • Da Buchungen erhalten bleiben sollen werden hier die Referenzen auf Spendenbescheinigung und Mitgliedskonto (Sollbuchung) auf SET NULL konfiguriert. Damit habe ich auch die überschriebene Methode delete bei der SpendenbescheinigungImpl gelöscht weil das nicht mehr explizit nötig ist.
  • Im Delete Dialog gebe ich den Warning Text und Icon aus. Siehe Bild oben.
  • Da Mails nicht implizit gelöscht werden habe ich dies im Java Code implementiert. Mails an das Mitglied werden nur gelöscht wenn das Mitglied der einzige Empfänger ist. Bei den anderen Mails wird das Mitglied implizit (wegen CASCADE) aus der Empfängerliste gelöscht.

PS: Foreign Keys kann man nicht modifizieren sondern muss sie erst löschen und wieder neu erzeugen. Ich habe in AbstractDDLUpdate die Methode zum Löschen des Foreign Key implementiert. Das funktioniert bei h2db und MySql unterschiedlich.
Ich konnte nur die Implementierung für h2db testen. Wer die MySql hat sollte schauen ob es auch dort funktioniert.

Wegen der Migration kann dieses Feature erst nach #218 und #223 übernommen werden.

@JohannMaierhofer JohannMaierhofer added enhancement New feature or request blocked Depends on another feature or request labels May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Depends on another feature or request enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant