From 3ae804809e7c1a147c0e94e2bc128660a9714738 Mon Sep 17 00:00:00 2001 From: David Curry Date: Wed, 3 Sep 2014 15:49:15 +1200 Subject: [PATCH] MDL-47076 badges: Add checks to user fields during badges restoration Change-Id: I49d2137666d2d7c1f6abca7ae83c07b326d9b0c4 --- backup/moodle2/restore_stepslib.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index 94255c2d05f..538c63cfe3c 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -2114,7 +2114,13 @@ class restore_badges_structure_step extends restore_structure_step { $data = (object)$data; $data->usercreated = $this->get_mappingid('user', $data->usercreated); + if (empty($data->usercreated)) { + $data->usercreated = $this->task->get_userid(); + } $data->usermodified = $this->get_mappingid('user', $data->usermodified); + if (empty($data->usermodified)) { + $data->usermodified = $this->task->get_userid(); + } // We'll restore the badge image. $restorefiles = true; @@ -2211,6 +2217,12 @@ class restore_badges_structure_step extends restore_structure_step { 'issuerrole' => $role, 'datemet' => $this->apply_date_offset($data->datemet) ); + + // Skip the manual award if recipient or issuer can not be mapped to. + if (empty($award['recipientid']) || empty($award['issuerid'])) { + return; + } + $DB->insert_record('badge_manual_award', $award); } }