From c04559ccb68263ecec624578e0524afa1f224459 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Mon, 25 Nov 2019 20:23:05 +0800 Subject: [PATCH 1/3] MDL-67312 core: change db upgrade step to use get_fieldset_sql --- lib/db/upgrade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index cb482010fac..fc3c06fc5b4 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3404,7 +3404,7 @@ function xmldb_main_upgrade($oldversion) { FROM {event_subscriptions} es LEFT JOIN {user} u ON u.id = es.userid WHERE u.deleted = 1 OR u.id IS NULL"; - $deletedusers = $DB->get_field_sql($sql); + $deletedusers = $DB->get_fieldset_sql($sql); if ($deletedusers) { list($sql, $params) = $DB->get_in_or_equal($deletedusers); From d3a2788437bbf2b9025e86b5e50a5d6a58322d6b Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Thu, 21 Nov 2019 08:36:22 +0800 Subject: [PATCH 2/3] MDL-67312 calendar: upgrade step to delete orphaned events --- lib/db/upgrade.php | 10 ++++++++++ version.php | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index fc3c06fc5b4..55adbb7e878 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3459,5 +3459,15 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2019052003.05); } + + if ($oldversion < 2019052004.02) { + // Delete all orphaned subscription events. + $select = "subscriptionid IS NOT NULL + AND subscriptionid NOT IN (SELECT id from {event_subscriptions})"; + $DB->delete_records_select('event', $select); + + upgrade_main_savepoint(true, 2019052004.02); + } + return true; } diff --git a/version.php b/version.php index 1c1aacc086a..1600491e1fb 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2019052004.01; // 20190520 = branching date YYYYMMDD - do not modify! +$version = 2019052004.02; // 20190520 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches. // .XX = incremental changes. From 2e6729e92383977384e7bd1bde932c4d67df033b Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Thu, 21 Nov 2019 18:36:05 +0800 Subject: [PATCH 3/3] MDL-67312 core_user: clean subs events on user deletion --- lib/moodlelib.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 9ca5860eadf..4080ecfbad1 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4222,7 +4222,10 @@ function delete_user(stdClass $user) { // Now do a brute force cleanup. - // Remove user's calendar subscriptions. + // Delete all user events and subscription events. + $DB->delete_records_select('event', 'userid = :userid AND subscriptionid IS NOT NULL', ['userid' => $user->id]); + + // Now, delete all calendar subscription from the user. $DB->delete_records('event_subscriptions', ['userid' => $user->id]); // Remove from all cohorts.