From 28b6ff82d989bf06926e5bde46d3a83497707dbb Mon Sep 17 00:00:00 2001 From: Eloy Lafuente Date: Tue, 24 Aug 2010 21:05:47 +0000 Subject: [PATCH] MDL-23898 backup - avoid role assignments for deleted users --- backup/moodle2/restore_stepslib.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index d11c0d4ce58..a8d8d0893f8 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -699,6 +699,8 @@ class restore_ras_and_caps_structure_step extends restore_structure_step { } public function process_assignment($data) { + global $DB; + $data = (object)$data; // Check roleid, userid are one of the mapped ones @@ -706,8 +708,11 @@ class restore_ras_and_caps_structure_step extends restore_structure_step { $newuserid = $this->get_mappingid('user', $data->userid); // If newroleid and newuserid and component is empty and context valid assign via API (handles dupes and friends) if ($newroleid && $newuserid && empty($data->component) && $this->task->get_contextid()) { - // TODO: role_assign() needs one userid param to be able to specify our restore userid - role_assign($newroleid, $newuserid, $this->task->get_contextid()); + // Only assign roles to not deleted users + if ($DB->record_exists('user', array('id' => $newuserid, 'deleted' => 0))) { + // TODO: role_assign() needs one userid param to be able to specify our restore userid + role_assign($newroleid, $newuserid, $this->task->get_contextid()); + } } } -- 2.43.0