From 3ee7064392c54a8fa1a1fe5e5c4ab309361cafd8 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Thu, 29 Aug 2019 10:57:23 +0800 Subject: [PATCH 1/2] MDL-66551 core_user: delete_user() should remove users calendar subs --- lib/moodlelib.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index e2016a8bf75..946231f1c11 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4182,6 +4182,9 @@ function delete_user(stdClass $user) { // Now do a brute force cleanup. + // Remove user's calendar subscriptions. + $DB->delete_records('event_subscriptions', ['userid' => $user->id]); + // Remove from all cohorts. $DB->delete_records('cohort_members', array('userid' => $user->id)); From 37e178e755847bd5d37db906ba7c91e9528199d4 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Thu, 29 Aug 2019 11:02:58 +0800 Subject: [PATCH 2/2] MDL-66551 core_user: remove orphaned calendar subscriptions --- lib/db/upgrade.php | 17 +++++++++++++++++ version.php | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 27732f79a4e..86dac0986fb 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -3090,5 +3090,22 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2018120305.04); } + if ($oldversion < 2018120305.11) { + // Delete "orphaned" subscriptions. + $sql = "SELECT DISTINCT es.userid + 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); + if ($deletedusers) { + list($sql, $params) = $DB->get_in_or_equal($deletedusers); + + // Delete orphaned subscriptions. + $DB->execute("DELETE FROM {event_subscriptions} WHERE userid " . $sql, $params); + } + + upgrade_main_savepoint(true, 2018120305.11); + } + return true; } diff --git a/version.php b/version.php index 37f6323f48a..25a31b5efc2 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2018120305.10; // 20181203 = branching date YYYYMMDD - do not modify! +$version = 2018120305.11; // 20181203 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches. // .XX = incremental changes.