MDL-28488 backup - '[backup|restore]:configure cap does not control import mode anymore
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Sun, 11 Sep 2011 17:09:59 +0000 (19:09 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Sun, 11 Sep 2011 17:09:59 +0000 (19:09 +0200)
backup/util/checks/backup_check.class.php
backup/util/checks/restore_check.class.php

index 63ec0cd..881c73c 100644 (file)
@@ -217,15 +217,19 @@ abstract class backup_check {
         }
 
         // Check the user has the ability to configure the backup. If not then we need
-        // to lock all settings by permission so that no changes can be made.
-        $hasconfigcap = has_capability('moodle/backup:configure', $coursectx, $userid);
-        if (!$hasconfigcap) {
-            $settings = $backup_controller->get_plan()->get_settings();
-            foreach ($settings as $setting) {
-                if ($setting->get_name()=='filename') {
-                    continue;
+        // to lock all settings by permission so that no changes can be made. This does
+        // not apply to the import facility, where the activities must be always enabled
+        // to be able to pick them
+        if ($mode != backup::MODE_IMPORT) {
+            $hasconfigcap = has_capability('moodle/backup:configure', $coursectx, $userid);
+            if (!$hasconfigcap) {
+                $settings = $backup_controller->get_plan()->get_settings();
+                foreach ($settings as $setting) {
+                    if ($setting->get_name() == 'filename') {
+                        continue;
+                    }
+                    $setting->set_status(base_setting::LOCKED_BY_PERMISSION);
                 }
-                $setting->set_status(base_setting::LOCKED_BY_PERMISSION);
             }
         }
 
index 0617732..915112c 100644 (file)
@@ -156,12 +156,16 @@ abstract class restore_check {
         }
 
         // Check the user has the ability to configure the restore. If not then we need
-        // to lock all settings by permission so that no changes can be made.
-        $hasconfigcap = has_capability('moodle/restore:configure', $coursectx, $userid);
-        if (!$hasconfigcap) {
-            $settings = $restore_controller->get_plan()->get_settings();
-            foreach ($settings as $setting) {
-                $setting->set_status(base_setting::LOCKED_BY_PERMISSION);
+        // to lock all settings by permission so that no changes can be made. This does
+        // not apply to the import facility, where all the activities (picked on backup)
+        // are restored automatically without restore UI
+        if ($mode != backup::MODE_IMPORT) {
+            $hasconfigcap = has_capability('moodle/restore:configure', $coursectx, $userid);
+            if (!$hasconfigcap) {
+                $settings = $restore_controller->get_plan()->get_settings();
+                foreach ($settings as $setting) {
+                    $setting->set_status(base_setting::LOCKED_BY_PERMISSION);
+                }
             }
         }