From 87bb5954eb9f4932febde0a01270f5f4880f737c 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 2f52d4857c6..99fd1568ddb 100644 --- a/admin/tool/dataprivacy/db/upgrade.php +++ b/admin/tool/dataprivacy/db/upgrade.php @@ -299,5 +299,19 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) { upgrade_plugin_savepoint(true, 2018110700, 'tool', 'dataprivacy'); } + if ($oldversion < 2018112500) { + // 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, 2018112500, 'tool', 'dataprivacy'); + } + return true; } diff --git a/admin/tool/dataprivacy/version.php b/admin/tool/dataprivacy/version.php index d25e4c87960..24cc5a6da51 100644 --- a/admin/tool/dataprivacy/version.php +++ b/admin/tool/dataprivacy/version.php @@ -24,6 +24,6 @@ defined('MOODLE_INTERNAL') || die; -$plugin->version = 2018110900; +$plugin->version = 2018112500; $plugin->requires = 2018050800; // Moodle 3.5dev (Build 2018031600) and upwards. $plugin->component = 'tool_dataprivacy';