From ed0087866cd0139f1e2c886966feb30f39b99274 Mon Sep 17 00:00:00 2001
From: Frederic Massart <fred@moodle.com>
Date: Mon, 10 Nov 2014 14:29:47 +0800
Subject: [PATCH] MDL-33520 backup: Restore does not fail when enrol value is
 empty

---
 backup/moodle2/restore_stepslib.php | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php
index 869556b..dce5309 100644
--- a/backup/moodle2/restore_stepslib.php
+++ b/backup/moodle2/restore_stepslib.php
@@ -1379,6 +1379,14 @@ class restore_enrolments_structure_step extends restore_structure_step {
         $data = (object)$data;
         $oldid = $data->id; // We'll need this later
 
+        if (empty($data->enrol)) {
+            // It could happen that some broken data was saved in the backup files, so in the case
+            // where the name of the plugin was not set we skip the entry or plugin_supports() will complain.
+            debugging("Skipping empty enrol entry (oldid: $oldid)", DEBUG_DEVELOPER);
+            $this->set_mapping('enrol', $oldid, 0);
+            return;
+        }
+
         $restoretype = plugin_supports('enrol', $data->enrol, ENROL_RESTORE_TYPE, null);
 
         if ($restoretype !== ENROL_RESTORE_EXACT and $restoretype !== ENROL_RESTORE_NOUSERS) {
-- 
1.9.1

