MDL-18543 restore of role assignments / overrides - skip non-restored contexts. Merge...
authorstronk7 <stronk7>
Thu, 12 Mar 2009 22:21:57 +0000 (22:21 +0000)
committerstronk7 <stronk7>
Thu, 12 Mar 2009 22:21:57 +0000 (22:21 +0000)
backup/restorelib.php

index 37499037324607b42d7383c20bd70ba0ac675a6f..b702cc642c4d8ff50ab34a5660ae335b4d2145a2 100644 (file)
@@ -9115,6 +9115,11 @@ WHERE
                 $oldinstance = backup_getid($restore->backup_unique_code,$table,$oldid);
             }
 
+            // new instance id not found (not restored module/block/user)... skip any assignment
+            if (!$oldinstance || empty($oldinstance->new_id)) {
+                continue;
+            }
+
             $newcontext = get_context_instance($contextlevel, $oldinstance->new_id);
             $assignment->contextid = $newcontext->id; // new context id
             // might already have same assignment
@@ -9145,6 +9150,11 @@ WHERE
                 $oldinstance = backup_getid($restore->backup_unique_code,$table,$oldid);
             }
 
+            // new instance id not found (not restored module/block/user)... skip any override
+            if (!$oldinstance || empty($oldinstance->new_id)) {
+                continue;
+            }
+
             $newcontext = get_context_instance($contextlevel, $oldinstance->new_id);
             $override->contextid = $newcontext->id; // new context id
             // use assign capability instead so we can add context to context_rel