diff --git a/admin/tool/dataprivacy/db/upgrade.php b/admin/tool/dataprivacy/db/upgrade.php index 2f52d4857c6a5..99fd1568ddb02 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 d25e4c8796014..24cc5a6da518c 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'; diff --git a/lib/classes/task/delete_unconfirmed_users_task.php b/lib/classes/task/delete_unconfirmed_users_task.php index b9aa9a32a864c..40dfe8ef1ef8a 100644 --- a/lib/classes/task/delete_unconfirmed_users_task.php +++ b/lib/classes/task/delete_unconfirmed_users_task.php @@ -54,9 +54,8 @@ public function execute() { WHERE confirmed = 0 AND timecreated > 0 AND timecreated < ? AND deleted = 0", array($cuttime)); foreach ($rs as $user) { - delete_user($user); // We MUST delete user properly first. - $DB->delete_records('user', array('id' => $user->id)); // This is a bloody hack, but it might work. - mtrace(" Deleted unconfirmed user for ".fullname($user, true)." ($user->id)"); + delete_user($user); + mtrace(" Deleted unconfirmed user ".fullname($user, true)." ($user->id)"); } $rs->close(); }