From ef31c54962aa05fc70986f545e2968e83fe3df8a Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 8 Mar 2023 13:51:05 +0000 Subject: [PATCH] remove forum abos and favorites upon user deletion and add a migration that cleans up the current state in the tables, fixes #2289 Closes #2289 Merge request studip/studip!1513 --- db/migrations/5.1.43_cleanup_forum_tables.php | 20 +++++++++++++++++++ lib/classes/UserManagement.class.php | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 db/migrations/5.1.43_cleanup_forum_tables.php diff --git a/db/migrations/5.1.43_cleanup_forum_tables.php b/db/migrations/5.1.43_cleanup_forum_tables.php new file mode 100644 index 00000000000..6f074695724 --- /dev/null +++ b/db/migrations/5.1.43_cleanup_forum_tables.php @@ -0,0 +1,20 @@ +<?php +final class CleanupForumTables extends Migration +{ + protected function up() + { + $query = "DELETE FROM `forum_abo_users` + WHERE `user_id` NOT IN ( + SELECT `user_id` + FROM `auth_user_md5` + )"; + DBManager::get()->exec($query); + + $query = "DELETE FROM `forum_favorites` + WHERE `user_id` NOT IN ( + SELECT `user_id` + FROM `auth_user_md5` + )"; + DBManager::get()->exec($query); + } +} diff --git a/lib/classes/UserManagement.class.php b/lib/classes/UserManagement.class.php index e44a7139529..516c9040a3a 100644 --- a/lib/classes/UserManagement.class.php +++ b/lib/classes/UserManagement.class.php @@ -1187,6 +1187,8 @@ class UserManagement "DELETE FROM evalanswer_user WHERE user_id = ?", "DELETE FROM help_tour_user WHERE user_id = ?", "DELETE FROM personal_notifications_user WHERE user_id = ?", + "DELETE FROM forum_abo_users WHERE user_id = ?", + "DELETE FROM forum_favorites WHERE user_id = ?", "DELETE FROM comments WHERE user_id = ?", "DELETE questionnaires FROM questionnaires LEFT JOIN questionnaire_assignments qa USING (`questionnaire_id`) WHERE qa.range_id = ?", -- GitLab