From c041f919f053fcbc294326cd1b892da78caac58a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Mudr=C3=A1k?= Date: Sun, 25 Nov 2018 07:17:54 +0100 Subject: [PATCH] MDL-64205 privacy: Delete orphaned data request records on upgrade As a result of the bug, some requests can be orphaned - the linked user record may not exist any more. This is a cleanup of such records. --- admin/tool/dataprivacy/db/upgrade.php | 14 ++++++++++++++ admin/tool/dataprivacy/version.php | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/admin/tool/dataprivacy/db/upgrade.php b/admin/tool/dataprivacy/db/upgrade.php index 353671b6c07..1a562b6764e 100644 --- a/admin/tool/dataprivacy/db/upgrade.php +++ b/admin/tool/dataprivacy/db/upgrade.php @@ -215,5 +215,19 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) { upgrade_plugin_savepoint(true, 2017051554, 'tool', 'dataprivacy'); } + if ($oldversion < 2017051556) { + // Delete orphaned data privacy requests. + $sql = "SELECT r.id + FROM {tool_dataprivacy_request} r LEFT JOIN {user} u ON r.userid = u.id + WHERE u.id IS NULL"; + $orphaned = $DB->get_fieldset_sql($sql); + + if ($orphaned) { + $DB->delete_records_list('tool_dataprivacy_request', 'id', $orphaned); + } + + upgrade_plugin_savepoint(true, 2017051556, 'tool', 'dataprivacy'); + } + return true; } diff --git a/admin/tool/dataprivacy/version.php b/admin/tool/dataprivacy/version.php index c96da6da510..129cdfd1e87 100644 --- a/admin/tool/dataprivacy/version.php +++ b/admin/tool/dataprivacy/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die; -$plugin->version = 2017051555; +$plugin->version = 2017051556; $plugin->requires = 2017051507.00; // Moodle 3.3.7 (Build: 20180517) and upwards. $plugin->component = 'tool_dataprivacy';