Beschreibung,Kommentare und Anhänge
| merge request id | 644 |
| Titel | Feature/ll 1180 automatic removal of deleted clients |
| Beschreibung | LL-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 |
| Status | merged |
| Created at | 2022-07-13T07:28:40.331Z |
| Updated at | 2022-08-01T08:07:25.794Z |
| Source branch | feature/LL-1180-automatic-removal-of-deleted-clients |
| Target branch | develop |
| Author | Gregor Gabriel |
| Assignee | Sebastian Schlein |
| 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
|
Gregor Gabriel | 2022-07-18T12:55:07.994Z |
added 1 commit
|
Sascha Immig | 2022-07-21T10:12:31.337Z |
| merged | Sascha Immig | 2022-08-01T08:07:25.860Z |
| 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 |