]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-20834 new cap moodle/backup:userinfo - controls who can backupuser
authorEloy Lafuente <stronk7@moodle.org>
Wed, 18 Nov 2009 19:38:51 +0000 (19:38 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Wed, 18 Nov 2009 19:38:51 +0000 (19:38 +0000)
related info. Disabled by default to teachers, oh my! :-( Merged from 19_STABLE

backup/backup_check.html
backup/backup_form.html
lib/db/access.php
version.php

index 59b8515d19e9a1dac916e79ca7a490d1ed7cb044..368a20b18c47ca15cd4653f55cd0df665483b571 100644 (file)
@@ -6,6 +6,9 @@
 
     $loginurl = get_login_url();
 
+    // Init backupuserinfo
+    $backupuserinfo = false;
+
     if (!empty($course->id)) {
         if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
             if (empty($to)) {
                 }
             }
         }
+        $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_COURSE, $course->id));
     } else {
         if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM))) {
             print_error("cannotuseadmin", '', $loginurl);
         }
+        $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
     }
 
 
 
     }
 
+    // Re-enforce moodle/backup:userinfo capability
+    if (!$backupuserinfo) {
+        $backupprefs->backup_users = 2; // users => none
+    }
+
     //Here we check if backup_users = None. Then, we switch off every module
     //user info, user_files, logs and exercises, workshop and messages & blogs backups. A Warning is showed to
     //inform the user.
index 0974e7f89f227c27f779da4319b521b23bbcdf5c..20c0a388253a0ca92d263e83960edf717a175cc7 100644 (file)
@@ -7,6 +7,9 @@
 
     $loginurl = get_login_url();
 
+    //Init backupuserinfo
+    $backupuserinfo = false;
+
     if (!empty($course->id)) {
         if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
             if (empty($to)) {
                 }
             }
         }
+        $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_COURSE, $course->id));
     } else {
         if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM))) {
             print_error("cannotuseadmin", '', $loginurl);
         }
+        $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
     }
 
     //Check site
@@ -131,12 +136,16 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
         echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_', true);\">". get_string("all")."</a>/";
         echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_', false);\">".  get_string("none")."</a>";
         echo "</td>";
-        echo "<td align=\"right\">";
-        echo '<b>&nbsp;</b>';
-        echo "</td><td>";
-        echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', true);\">". get_string("all")."</a>/";
-        echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', false);\">". get_string("none")."</a>";
-        echo "</td>";
+        if (empty($to) and $backupuserinfo) {
+            echo "<td align=\"right\">";
+            echo '<b>&nbsp;</b>';
+            echo "</td><td>";
+            echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', true);\">". get_string("all")."</a>/";
+            echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', false);\">". get_string("none")."</a>";
+            echo "</td>";
+        } else {
+            echo "<td colspan=\"2\">&nbsp;</td>";
+        }
         echo "</tr>";
         echo "<tr><td colspan=\"4\"><hr /></td></tr>";
         $currentrow = 0;
@@ -159,7 +168,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
                 echo "</td><td align=\"right\">&nbsp;";
                 echo "</td><td>";
                 $var = "backup_user_info_".$modname;
-                if (empty($to)) {
+                if (empty($to) and $backupuserinfo) {
                     $backup_user_options[0] = get_string("withoutuserdata");
                     $backup_user_options[1] = get_string("withuserdata");
                     print_checkbox($var, $$var, $$var, get_string("userdata"),'','selectItemInCheckboxByName(\'form1\',\'backup_user_info_'.$modname.'\',this.checked)');
@@ -178,7 +187,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
                     echo '</td><td align="right">&nbsp;';
                     $var = 'backup_user_info_'.$modname.'_instance_'.$instance->id;
                     $$var = optional_param($var,1, PARAM_CLEAN);
-                    if (empty($to)) {
+                    if (empty($to) and $backupuserinfo) {
                         print_checkbox($var,$$var,$$var,get_string('userdata'),'','this.form.elements[\'backup_user_info_'.$modname.'\'].checked=1;');
                     } else {
                         echo '<input type="hidden" name="'.$var.'" value="0" />';
@@ -206,7 +215,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
             $hidden_options .= '<input type="hidden" name="backup_metacourse" value="0" />';
         }
 
-        if (empty($to)) {
+        if (empty($to) and $backupuserinfo) {
             //Now print the Users tr
             echo "<tr>";
             echo "<td align=\"right\" colspan=\"2\"><b>";
@@ -219,10 +228,10 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
             echo "</td></tr>";
         }
         else {
-            $hidden_options .= '<input type="hidden" name="backup_users" value="0" />';
+            $hidden_options .= '<input type="hidden" name="backup_users" value="2" />';
         }
 
-        if (empty($to)) {
+        if (empty($to) and $backupuserinfo) {
             //Now print the Logs tr
             echo "<tr>";
             echo "<td align=\"right\" colspan=\"2\"><b>";
@@ -237,7 +246,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
             $hidden_options .= '<input type="hidden" name="backup_logs" value="0" />';
         }
 
-        if (empty($to)) {
+        if (empty($to) and $backupuserinfo) {
             //Now print the User Files tr
             echo "<tr>";
             echo "<td align=\"right\" colspan=\"2\"><b>";
@@ -290,7 +299,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
             $hidden_options .= '<input type="hidden" name="backup_gradebook_history" value="0" />';
         }
 
-        if (empty($to) && $course->id == SITEID) {
+        if (empty($to) and $backupuserinfo and $course->id == SITEID) {
             //If we are in a SITEID backup print the Messages tr
             echo "<tr>";
             echo "<td align=\"right\" colspan=\"2\"><b>";
@@ -305,7 +314,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
             $hidden_options .= '<input type="hidden" name="backup_messages" value="0" />';
         }
 
-        if (empty($to) && $course->id == SITEID && !empty($CFG->bloglevel)) {
+        if (empty($to) and $backupuserinfo and $course->id == SITEID and !empty($CFG->bloglevel)) {
             //If we are in a SITEID backup and blogs are enabled print the Blogs tr
             echo "<tr>";
             echo "<td align=\"right\" colspan=\"2\"><b>";
@@ -322,7 +331,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
     }
 
     //Now print a place to select which role assignments to back up.
-    if (empty($to)) {
+    if (empty($to) and $backupuserinfo) {
         //Line
         echo "<tr><td colspan=\"4\"><hr /></td></tr>\n";
 
index 05f014001a8feead4a33a650435a8ac4bc20daaf..a67b6f232ade937a8c1010ea56eed5333b7887c7 100644 (file)
@@ -193,6 +193,17 @@ $capabilities = array(
         'clonepermissionsfrom' =>  'moodle/site:restore'
     ),
 
+    'moodle/backup:userinfo' => array(
+
+        'riskbitmask' => RISK_PERSONAL | RISK_CONFIG,
+
+        'captype' => 'write',
+        'contextlevel' => CONTEXT_COURSE,
+        'legacy' => array(
+            'admin' => CAP_ALLOW
+        )
+    ),
+
     'moodle/site:restore' => array(
 
         'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
index 7997aaaf31162806d956f3598169983af5b11267..e0ad2b46a706c8db2babe200e1577913053760b6 100644 (file)
@@ -6,7 +6,7 @@
 // This is compared against the values stored in the database to determine
 // whether upgrades should be performed (see lib/db/*.php)
 
-    $version = 2009111702;  // YYYYMMDD   = date of the last version bump
+    $version = 2009111800;  // YYYYMMDD   = date of the last version bump
                             //         XX = daily increments
 
     $release = '2.0 dev (Build: 20091117)';  // Human-friendly version name