From 3ff84f56eb669a2f157b965de5e06a667cc74f41 Mon Sep 17 00:00:00 2001 From: David Curry Date: Wed, 3 Sep 2014 15:17:08 +1200 Subject: [PATCH] MDL-47076 badges: Add checks to user fields during badges restoration Change-Id: Ib429092fa5c125d1bf57f886036b7c6617f1ec6f --- 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 f9673853674..ec56068c1ec 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -2042,7 +2042,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; @@ -2139,6 +2145,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); } }