Skip to content

DSGVO-Löschung: Benutzerkonten endgültig entfernen

Kurzfassung

Prilog unterstützt DSGVO-konforme Löschung nach Art. 17 DSGVO („Recht auf Vergessenwerden"). Beim Archivieren eines Benutzerkontos werden alle personenbezogenen Daten unwiderruflich anonymisiert, der Matrix-Account gelöscht und alle Chat-Nachrichten auf Matrix-Ebene redigiert. Die Aktion ist nicht rückgängig zu machen und wird im Audit-Log festgehalten.

Warum es zwei Wege gibt, einen Benutzer zu entfernen

Im Schul-Alltag gibt es zwei verschiedene Situationen, die beide „einen Benutzer wegmachen" bedeuten können — die aber rechtlich und technisch nicht dasselbe sind:

SituationBeispielRichtiger Modus
Konto wird vorerst nicht mehr benutzt, könnte aber später wieder gebraucht werdenLehrerin in Elternzeit, Schüler wechselt die Schule, Konto wird pausiertDeaktivieren
Betroffene Person fordert Löschung nach DSGVO, oder eine gesetzliche Aufbewahrungsfrist läuft abLöschantrag nach Art. 17 DSGVO, Ende der gesetzlichen Speicherfrist für SchülerdatenEndgültig archivieren

Prilog trennt beide Wege bewusst, damit kein versehentlicher Klick sensible Daten löscht, die noch gebraucht werden — und damit für den Fall eines echten Löschantrags ein sauberer, dokumentierter Weg existiert.

Die beiden Modi im Vergleich

AspektDeaktivierenArchivieren (DSGVO)
Wann nutzen?Konto temporär pausierenDSGVO-Löschantrag
Reversibel?✅ Jederzeit, ein Klick❌ Unwiderruflich
Login möglich?NeinNein
Name in der DBBleibt erhaltenWird zu „Gelöschter Benutzer"
E-Mail, Telefon, AdresseBleiben erhaltenWerden auf null gesetzt
GeburtsdatumBleibt erhaltenWird auf null gesetzt
Matrix-AccountWird deaktiviert (Login blockiert)Wird mit erase=true gelöscht
Chat-Nachrichten in RäumenBleiben vollständig lesbarWerden auf Matrix-Ebene redigiert („Message deleted")
Matrix-User-IDBleibt erhaltenBleibt als technische Hülle erhalten (damit alte Chat-Events nicht ins Leere zeigen)
Space-MitgliedschaftenBleiben erhalten (pausiert)Werden entfernt
Erscheint in ListenMit „Inaktiv"-BadgeNein, überhaupt nicht
Audit-Log-EintragJaJa, mit Pflichtgrund

So wird archiviert

  1. Benutzer > Benutzerkonten aufrufen
  2. Bei dem zu löschenden Konto auf „Löschen" klicken
  3. Im aufpoppenden Dialog die zweite Option wählen: „Endgültig archivieren (DSGVO-Löschung)"
  4. Grund eintragen (Pflichtfeld, mindestens 3 Zeichen, maximal 500) — z.B.:
    • „DSGVO-Löschantrag vom 2026-04-05, Aktenzeichen 123"
    • „Aufbewahrungsfrist Ende, gemäss Landesverordnung vom ..."
    • „Schüler hat die Schule verlassen, Einverständnis der Eltern zur Löschung liegt vor"
  5. Zur Bestätigung die Matrix-ID des Benutzers exakt eintippen (Schutz vor Verwechslungsklicks — die ID wird im Dialog angezeigt)
  6. Auf den roten Button „Endgültig archivieren" klicken

Der Dialog schliesst sich, der Eintrag verschwindet sofort aus der Benutzerliste. Ein Audit-Log-Eintrag mit Admin-ID, Zeitstempel und Grund wird automatisch erstellt.

Hinweis

Die zweite Option ist rot eingefärbt und hat einen expliziten Warntext. Das ist Absicht. Die Aktion lässt sich nicht rückgängig machen — auch nicht vom Prilog-Support.

Was technisch passiert

Wenn du auf „Endgültig archivieren" klickst, läuft im Hintergrund folgende Sequenz ab:

1. Synapse-Erase

Prilog ruft die Synapse-Admin-API auf:

POST /_synapse/admin/v1/deactivate/{user_id}
Body: { "erase": true }

Das erase: true-Flag ist die offizielle Matrix-Spec für GDPR-Löschung und bewirkt:

  • Der Synapse-User wird deaktiviert (kein Login mehr möglich)
  • Alle 3PIDs (E-Mail-Adressen, Telefonnummern) werden gelöscht
  • Alle Nachrichten des Users in Räumen werden redigiert — d.h. der Nachrichteninhalt wird durch einen Marker ersetzt („Message deleted"), aber das Event selbst bleibt bestehen, damit die Chat-Historie konsistent lesbar bleibt
  • Der User-Eintrag wird aus dem globalen Benutzerverzeichnis entfernt

Die Matrix-User-ID (@username:schule.prilog.team) bleibt als technische Referenz erhalten. Das muss so sein, weil Matrix ein verteiltes System ist: m.room.member-State-Events in allen Räumen verweisen auf diese ID, und ein echter Hard-Delete würde die Raum-Integrität zerstören. Der Name und alle Metadaten dieser ID sind aber weg.

2. Prilog-DB-Anonymisierung

Parallel (in einer Datenbank-Transaktion, damit entweder alles oder nichts passiert) aktualisiert Prilog den UserDirectoryEntry:

  • fullName"Geloeschter Benutzer"
  • email, phone, street, postalCode, city, countrynull
  • birthDate, birthYearnull
  • profileVisibility{}
  • notesnull
  • activefalse
  • Neue Felder:
    • archivedAt → aktueller Zeitpunkt
    • archivedReason → der vom Admin eingegebene Grund
    • archivedBy → ID des ausführenden Admins

Zusätzlich werden entfernt:

  • Alle Membership-Einträge (Space-Mitgliedschaften)
  • Der PrilogMembership-Eintrag (Verwaltungsebene)
  • Alle SpaceManager-Einträge (Primär-/Stellvertretend-Verantwortlichkeiten)

3. Verknüpfte Datensätze

Wenn der Benutzer noch offene Einladungen oder Zugangsanträge mit derselben E-Mail hatte, werden auch diese anonymisiert:

  • fullName"Geloeschter Benutzer"
  • emailanon-{id}@archived.local (platzhalter, damit Unique-Constraints nicht brechen)
  • Adressdaten auf null
  • Freitext-Nachrichten auf null

4. Audit-Log

Ein Eintrag in UserDirectoryHistory:

action: ARCHIVE
summary: "DSGVO-Archivierung: {reason}"
changedBy: {actor-id}
changes:
  - archivedAt: null → <timestamp>
  - matrixEraseStatus: null → 'erased'
  - fullName: "Lisa Mueller" → "Geloeschter Benutzer"
  - email: "lisa@example.com" → null

Dieser Eintrag bleibt als Beweis erhalten — er enthält nicht mehr die personenbezogenen Daten, dokumentiert aber, wann, von wem und warum archiviert wurde. Das ist genau das, was Artikel 30 DSGVO („Verzeichnis von Verarbeitungstätigkeiten") fordert.

Fehlerfälle

Prilog ist so gebaut, dass die DSGVO-Löschung auch bei Teilproblemen durchläuft:

  • Matrix-User existiert nicht mehr (404): Wird als already_erased behandelt, Prilog-Seite wird trotzdem anonymisiert. Idempotent.
  • Synapse ist kurz offline oder verweigert: Fehler wird in syncLastError dokumentiert, Prilog-Seite wird trotzdem anonymisiert. Die DSGVO-Pflicht darf nicht an einem halben Netzwerkausfall scheitern.
  • Admin klickt zweimal: Zweiter Aufruf ist ein idempotenter No-Op (alreadyArchived: true).
  • Eintrag existiert gar nicht: 404, nichts passiert.

Wer darf archivieren?

Nur Benutzer mit der Verwaltungsebene Administrator (Schulleitung) oder Inhaber (Schulträger) — also Accounts mit der Capability manageUsers. Lehrkräfte (Manager) und Mitglieder (Schüler/Eltern) haben diese Aktion nicht verfügbar.

Das ist auch datenschutzrechtlich sauber: eine Löschung nach DSGVO ist eine Administrationshandlung der verantwortlichen Stelle, nicht einer Einzelperson.

DSGVO-Checkliste für Admins

Wenn ein Löschantrag nach Art. 17 DSGVO eingeht:

  1. Prüfen, ob der Antrag berechtigt ist. Ist die Person tatsächlich betroffen? Sind Einwilligungen widerrufen worden? Greift eine gesetzliche Aufbewahrungsfrist, die der Löschung widerspricht?
  2. Dokumentation anlegen. Den Antrag (E-Mail, Brief, Formular) separat speichern, inkl. Aktenzeichen.
  3. Im Prilog-Portal das Konto archivieren (dieser Artikel).
  4. Den angegebenen Grund im Dialog sollte das Aktenzeichen enthalten, damit der Audit-Log-Eintrag später einem konkreten Antrag zugeordnet werden kann.
  5. Betroffene Person informieren, dass die Löschung durchgeführt wurde (Art. 12 DSGVO).
  6. Checken, ob Daten in anderen Systemen liegen (Noten-Software, Elternportal, Foto-Archiv etc.) und diese ebenfalls bearbeiten — Prilog löscht nur die Prilog-Daten.

Prilog ist nicht das einzige System

Die DSGVO-Löschung in Prilog beseitigt nur die in Prilog gespeicherten Daten. Wenn die Schule dieselbe Person auch in einer Noten-Verwaltung, einem Stundenplan-Tool oder auf einer Klassenfoto-Webseite erfasst hat, muss sie dort separat gelöscht werden. Der Prilog-Archivierungs-Knopf ist kein Zauberstab über alle Schulsysteme.

Häufige Fragen

Kann ich einen archivierten Account wiederherstellen?

Nein. Die personenbezogenen Daten sind nach der Archivierung nicht mehr in der Prilog-DB vorhanden — es gibt nichts, was man wiederherstellen könnte. Der Eintrag bleibt nur noch als leere Hülle (mit der Matrix-User-ID und dem Wert „Gelöschter Benutzer") existieren.

Wenn die Person zurück in die Schule kommt, legst du ein neues Konto mit einer neuen Matrix-ID an.

Warum bleibt die Matrix-User-ID stehen?

Weil Matrix ein verteiltes System ist: jeder Raum speichert m.room.member-State-Events, die diese ID enthalten. Ein Hard-Delete der ID würde die Raum-Integrität brechen und unter Umständen dafür sorgen, dass föderierte Matrix-Server (wenn Prilog eines Tages Federation unterstützt) inkonsistente Zustände sehen. Die ID steht dann dort als anonymer Platzhalter — kein Name, keine Kontaktdaten, keine Nachrichten mehr.

Das ist konform mit der DSGVO, weil die ID selbst kein personenbezogenes Datum mehr ist, sobald alle damit verbundenen Informationen entfernt sind.

Was sehen andere Benutzer in alten Chatverläufen?

Alle Nachrichten der archivierten Person werden zu „Message deleted" (oder dem entsprechenden Marker, je nach Client). Der Absender erscheint als anonyme ID (die Clients zeigen meistens nur den letzten Teil der ID). Zitate aus den Nachrichten sind nicht mehr rekonstruierbar — Matrix redigiert den Inhalt komplett.

Ich habe einen Account archiviert, der noch aktiv sein sollte. Was kann ich tun?

Ehrlich gesagt: nicht viel. Die Daten sind weg. Du kannst:

  1. Die Person kontaktieren und fragen, ob sie bereit ist, ein neues Konto anzunehmen
  2. Sie im System neu anlegen (neue Matrix-ID, neues Konto)
  3. Sie wieder den entsprechenden Spaces hinzufügen
  4. Alte Chatverläufe sind aber unwiederbringlich verloren (ihre Nachrichten sind auf Matrix-Ebene redigiert)

Deshalb der Zwei-Stufen-Dialog mit Pflichtgrund und Matrix-ID-Bestätigung: er soll dich davor schützen.

Wie oft sollte ich archivieren?

Selten. Im Normalfall reicht „Deaktivieren". Archivieren ist die Ausnahme, nicht die Regel. Faustregel:

  • Alltag (Schüler wechselt, Lehrkraft geht in Elternzeit, Account wird nicht mehr gebraucht): Deaktivieren
  • DSGVO-Antrag, gesetzliche Pflicht, Einwilligung widerrufen: Archivieren

Gibt es eine Massen-Archivierung?

Aktuell nicht. Jede Archivierung muss einzeln angestossen werden, weil sie einen individuellen Grund + Matrix-ID-Bestätigung erfordert. Das ist bewusst so — eine Massen-Archivierung wäre ein zu grosser Hebel für versehentliche Fehler.

Wenn du einen legitimen Bulk-Lösch-Fall hast (z.B. Ende eines Schuljahres + Aufbewahrungsfrist abgelaufen), melde dich beim Prilog-Support — wir können das in einer klar dokumentierten Wartungsaktion durchführen.

Marketing-konforme Aussagen

Wenn du Prilog gegenüber Eltern, Schulträgern oder Datenschutzbeauftragten beschreibst, sind folgende Formulierungen sachlich korrekt und nachprüfbar:

  • „Prilog erfüllt das Recht auf Löschung nach Art. 17 DSGVO — mit einem einzigen, dokumentierten Arbeitsschritt im Portal."
  • „Beim Löschen eines Benutzerkontos werden personenbezogene Daten sowohl in der Datenbank als auch im verteilten Matrix-System unwiderruflich entfernt, Chat-Nachrichten dieser Person werden redigiert."
  • „Jede Löschung erfordert einen Pflichtgrund und eine Matrix-ID-Bestätigung, wird im Audit-Log festgehalten und kann nur von Administratoren mit der Verwaltungsebene Schulleitung oder höher durchgeführt — konform mit Art. 30 DSGVO (Verzeichnis von Verarbeitungstätigkeiten)."
  • „Prilog unterscheidet klar zwischen temporärer Deaktivierung (reversibel) und endgültiger Löschung (irreversibel). Das schützt vor versehentlichem Datenverlust und bildet den juristischen Unterschied zwischen Pausieren und Löschen sauber ab."