Details des Tickets

Beschreibung,Kommentare und Anhänge

merge request id 644
TitelFeature/ll 1180 automatic removal of deleted clients
BeschreibungLL-1180 - Dauerhaftes Löschen von Mandanten s. http://jira.learningsystem.de/browse/LL-1180 Details folgen! Notizen: haben wir überhaupt soft deletes? brauchen wir soft deletes? wir haben soft deletes und es sind schon über 218 Mandanten soft gelöscht, das macht auch Sinn, da zwei falsche Klicks sonst zur Katastrophe führen würden Löschung durch automatischen Lauf (bei soft delete nach 30 Tagen) Müssen wir für uns was sichern? Abohistorie etc? das wäre rechtlich geraten, da ja Kunden das Recht haben ihre Daten nach Vertragsende mitzunehmen Es war mal im Gespräch, eine Archivierung für den Mandanten zu entwickeln. Hierbei sollte nach der Kündigung der Mandant in den Zustand "in Abwicklung" überführt werden. "in Abwicklung" kann man keine Unterweisungen mehr durchführen oder buchen, keine Nutzer anlegen etc. es können nur noch Daten gesichert werden. Der Zustand "in Abwicklung" würde nach 30 (oder 60) Tagen automatisch in die Schließung und Löschung münden. Die Archivierung eines Mandanten könnte so ähnlich laufen, wie die Archivierung eines Users. wir erzeugen für jeden User die Daten der Einzel-Archivierung Benutzer-Steckbrief in HTML mit links auf die Teilnahmezertifikate des Users für jedes Training das von einem Mitarbeiter bestanden wurde Eckdaten des Trainings Liste aller Absolventen mit Links zu separaten Teilnehmersteckbriefen für jede Gruppe Eckdaten der Gruppe Liste aller Mitglieder mit Links zu separaten Teilnehmersteckbriefen für jede Abteilung Eckdaten der Abteilung Liste aller Mitglieder mit Links zu separaten Teilnehmersteckbriefen für den Mandanten Einen Mandanten-Steckbrief mit Mandanten-Stammdaten Kontakt-Person zuständiger Support-Mitarbeiter Adresse Liste Aller Gruppen mit Links zu separaten Gruppensteckbriefen Liste Aller Abteilungen mit Links zu separaten Abteilungssteckbriefen Liste Aller Mitarbeiter mit Links zu separaten Teilnehmersteckbriefen Liste Aller Trainings, die von Mitarbeitern in dem Zeitraum bestanden wurden Erledigte Anpassungen am Datenbank-Modell Tabelle.Feld Ist Soll addresses.client_id on delete restrict on delete cascade api_keys.client_id on delete restrict on delete cascade api_uses.client_id on delete cascade catalogs.client_id on delete restrict on delete cascade classroom_trainings.client_id on delete restrict on delete cascade client_catalogs.client_id on delete restrict on delete cascade client_training.client_id on delete restrict on delete cascade correspondences.client_id on delete restrict on delete cascade groups.client_id on delete restrict on delete cascade hero_blocks.client_id on delete restrict on delete cascade mail_templates.client_id on delete restrict on delete cascade media.client_id (nullable) on delete restrict on delete cascade orders.client_id on delete restrict on delete cascade organization_units.client_id on delete restrict on delete cascade pages.client_id on delete restrict on delete cascade participation_certificates.client_id on delete restrict on delete cascade password_resets.client_id on delete restrict on delete cascade reminder_templates.client_id on delete cascade roles.client_id on delete restrict on delete cascade subscriptions.client_id on delete restrict on delete cascade training_assignments.client_id on delete restrict on delete cascade training_progress.client_id on delete cascade training_reminders.client_id on delete cascade users.client_id on delete restrict on delete cascade Zu der Frage "brauchen wir soft deletes" -> Wenn ein Status in Abwicklung hinzukommt, passiert eben nicht die Katastrophe, weil es nicht mehr möglich ist, einen Mandanten direkt zu löschen. Aber rein aus administrativer Sicht, müssen wir nicht jeden Mandanten abwickeln, sondern eher Fehleinträge löschen. Daher bleibt es bei den soft deletes. Das führt mich dazu: wenn ein SuperAdmin einen Mandanten löscht, sollte der direkt in den Zustand gelöscht übergehen und nach 48+h per pruning weg sein. Wenn ein Kunde seinen Account kündigt, muss es diesen Abwicklungs-Zeitraum von 30 Tagen / 4 Wochen geben. Mandanten implementieren nun Prunable und ich habe auch diverse Mandanten prunen können Sascha Immig Eine erste Version für die Archivierung von Mandanten ist nun umgesetzt. Es muss aber noch genau spezifiziert werden, was alles passieren soll, wenn ein Mandant archiviert wurde Folgendes passiert bereits. Mandanten-Archiv wird erzeugt und allen Mandanten-Admins werden darüber informiert. Alle User ohne eine Rolle werden im Mandanten deaktiviert Der Mandant verliert das Recht User zu bearbeiten (Aktivieriung nicht mehr möglich) ein Cronjob löscht den Mandanten automatisch, nach 4 Wochen an einem Arbeitstag Mandant und Betreuer erhalten bezüglich des Löschens eine E-Mail Wo überall und wie soll angezeigt werden, dass der Mandant gekündigt wurde - momentan wird das in der administrativen Liste der Mandanten unter der Spalte "Aktiv" angezeigt benötigen wir einen Filter auf der Eigenschaft "gekündigt", wenn ja dann wo überall - momentan kann in der administrativen Liste der Mandanten im Status-Filter "In Löschung" gewählt werden Buchungsrecht entziehen keine Abos mehr abschliessen
Statusmerged
Created at 2022-07-13T07:28:40.331Z
Updated at 2022-08-01T08:07:25.794Z
Source branchfeature/LL-1180-automatic-removal-of-deleted-clients
Target branchdevelop
AuthorGregor Gabriel
AssigneeSebastian Schlein

Discussion notes

changed the description Gregor Gabriel 2022-07-18T08:11:24.576Z
assigned to @schleins Gregor Gabriel 2022-07-18T08:11:24.689Z
added 1 commit
  • ee6e59c8 - realized additional requests from Sascha
Compare with previous version
Gregor Gabriel 2022-07-18T12:55:07.994Z
added 1 commit
  • 5a33074c - text changes [skip-ci]
Compare with previous version
Sascha Immig 2022-07-21T10:12:31.337Z
merged Sascha Immig 2022-08-01T08:07:25.860Z

Merge Commits

Title Id Author Created at Message
adapted migration to actual database structure 037d5b904df74a2105c7aab50185489fbd108c6b TUV\gabrielg 2022-07-12T10:17:56.000Z adapted migration to actual database structure
+ revoked booking permission for canceled clients 1282e37275731bdda8731ef6c168a50acb3e8c63 TUV\gabrielg 2022-07-12T10:56:58.000Z + revoked booking permission for canceled clients + disabled possibility to create or alter subscritions for canceled clients
+ reworked migration, so that it works not only on my database but also on test… 158c31ffc4838def98619220953d45a94d5b74f6 TUV\gabrielg 2022-05-25T07:03:09.000Z + reworked migration, so that it works not only on my database but also on test database when performing all migrations + added migration for cascading group_id foreign keys
Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into… 41fec0f4bbe06cd82eac8f02e431d2d23a75b673 TUV\gabrielg 2022-06-01T13:16:48.000Z Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into feature/LL-1180-automatic-removal-of-deleted-clients + added deletion workflow 4 weeks after cancellation
+ purge deleted client after 2 days 512f1b1103058fa75efc699a8a7c7c668dcd700f TUV\gabrielg 2022-05-24T14:08:45.000Z + purge deleted client after 2 days
working on cancellation mechanism 59bf6e9810999d504351f0dfaac2c32c1567b0e9 TUV\gabrielg 2022-05-25T13:02:05.000Z working on cancellation mechanism
text changes [skip-ci] 5a33074cdfb80d6c289e60a5bf8bddbf29de29c0 TUV\immigs 2022-07-21T10:12:22.000Z text changes [skip-ci]
added button to archive and cancel client 600ce42230e5f807f753d88d9826859aab826e84 TUV\gabrielg 2022-05-25T14:34:09.000Z added button to archive and cancel client
Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into… 6a077ba55e1e1bd35f3a0409e30d2779de0e11a2 TUV\gabrielg 2022-05-24T07:26:05.000Z Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into feature/LL-1180-automatic-removal-of-deleted-clients
We have a problem! 71b47ce1a56d281597be2dae1fd65412d58a3650 TUV\gabrielg 2022-07-12T10:37:30.000Z We have a problem! - Database structure of prod system is not completely equal to database structure that is created by migrations. + So I adapted migration to handle this gap
added migration to let all foreign key relations to clients table on delete cascade 7ea29232e57163f943570453806c176707f7f808 TUV\gabrielg 2022-05-24T09:33:58.000Z added migration to let all foreign key relations to clients table on delete cascade
started to make clients prunable 9b756047fc31f3ff13ca56b33801b54da405c192 TUV\gabrielg 2022-05-12T07:06:44.000Z started to make clients prunable
+ added further necessary migrations to make purge test of client work ab1d8a15c3ee2ac2fcac206ebf4f5ffb94f9cd5b TUV\gabrielg 2022-05-25T09:45:46.000Z + added further necessary migrations to make purge test of client work
updated guzzlehttp/guzzle (and barryvdh/laravel-dompdf) due to vulnerability warning ad834d864c57518764ab55991ed2d6ec6eef4caf TUV\immigs 2022-05-31T16:28:35.000Z updated guzzlehttp/guzzle (and barryvdh/laravel-dompdf) due to vulnerability warning (cherry picked from commit f36b0402d8234234d6f0645394c290879c7e5757)
Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into… bdea889061a5fec9341cc6199108b6fe0c97dd2e TUV\gabrielg 2022-05-25T13:06:30.000Z Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into feature/LL-1180-automatic-removal-of-deleted-clients # Conflicts: # app/Models/Client.php
Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into… d2a20a4c79b66fb86690f6f775400fe79da584f6 TUV\gabrielg 2022-07-12T08:37:19.000Z Merge branch 'develop' of https://gitlab.learningsystem.de/lms/seventeen into feature/LL-1180-automatic-removal-of-deleted-clients
extendend pruning test for client, as prune still failed in some real cases da34a6d8d26dd7e51896ae293a6a65a3615ce478 TUV\gabrielg 2022-05-25T10:29:19.000Z extendend pruning test for client, as prune still failed in some real cases
realized additional requests from Sascha ee6e59c89e8d2724fa5e2909e1ad4e5985c14cb8 TUV\gabrielg 2022-07-18T12:54:59.000Z realized additional requests from Sascha
+ added "in extinction" to client status filter f0baff8a13e585f806b4b3bef53adcf788c5f85c TUV\gabrielg 2022-07-12T11:41:33.000Z + added "in extinction" to client status filter + display under active column, if client is cancelled + fixed wrong test for cancelled clients in ui in two places