diff --git a/backup/backup_check.html b/backup/backup_check.html
index 42be80bbca7..c3be745ba26 100644
--- a/backup/backup_check.html
+++ b/backup/backup_check.html
@@ -4,6 +4,9 @@
//Check login
require_login();
+ // Init backupuserinfo
+ $backupuserinfo = false;
+
if (!empty($course->id)) {
if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
if (empty($to)) {
@@ -14,10 +17,12 @@
}
}
}
+ $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, SITEID))) {
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
}
+ $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
}
@@ -58,6 +63,11 @@
}
+ // 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 backups. A Warning is showed to
//inform the user.
diff --git a/backup/backup_form.html b/backup/backup_form.html
index a1f2f120d3c..05747d23bca 100644
--- a/backup/backup_form.html
+++ b/backup/backup_form.html
@@ -4,6 +4,9 @@
//Check login
require_login();
+ //Init backupuserinfo
+ $backupuserinfo = false;
+
if (!empty($course->id)) {
if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
if (empty($to)) {
@@ -14,10 +17,12 @@
}
}
}
+ $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, SITEID))) {
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
}
+ $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
}
//Check site
@@ -127,12 +132,16 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
echo "". get_string("all")." /";
echo "". get_string("none")." ";
echo "";
- echo "
";
- echo ' ';
- echo " ";
- echo "". get_string("all")." /";
- echo "". get_string("none")." ";
- echo " ";
+ if (empty($to) and $backupuserinfo) {
+ echo "";
+ echo ' ';
+ echo " ";
+ echo "". get_string("all")." /";
+ echo "". get_string("none")." ";
+ echo " ";
+ } else {
+ echo " ";
+ }
echo "";
echo " ";
$currentrow = 0;
@@ -155,8 +164,8 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
echo " ";
echo " ";
$var = "backup_user_info_".$modname;
- if (empty($to)) {
- $backup_user_options[0] = get_string("withoutuserdata");
+ if (empty($to) and $backupuserinfo) {
+ $backup_user_options[0] = get_string("withoutuserdata");
$backup_user_options[1] = get_string("withuserdata");
//choose_from_menu($backup_user_options, $var, $$var, "");
print_checkbox($var, $$var, $$var, get_string("userdata"),'','selectItemInCheckboxByName(\'form1\',\'backup_user_info_'.$modname.'\',this.checked)');
@@ -177,7 +186,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
echo ' ';
$var = 'backup_user_info_'.$modname.'_instance_'.$instance->id;
$$var = optional_param($var,1);
- 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 ' ';
@@ -207,7 +216,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
$hidden_options .= ' ';
}
- if (empty($to)) {
+ if (empty($to) and $backupuserinfo) {
//Now print the Users tr
echo " ";
echo "";
@@ -220,10 +229,10 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
echo " ";
}
else {
- $hidden_options .= ' ';
+ $hidden_options .= ' ';
}
-
- if (empty($to)) {
+
+ if (empty($to) and $backupuserinfo) {
//Now print the Logs tr
echo "";
echo "";
@@ -237,8 +246,8 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
else {
$hidden_options .= ' ';
}
-
- if (empty($to)) {
+
+ if (empty($to) and $backupuserinfo) {
//Now print the User Files tr
echo "";
echo "";
@@ -262,7 +271,7 @@ function selectItemInCheckboxByName(formId, checkName, checked ) {
choose_from_menu($course_file_options, "backup_course_files", $backup_course_files, "");
echo " ";
- 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 "";
echo "";
diff --git a/lib/db/access.php b/lib/db/access.php
index e55217144ce..5df5d490368 100644
--- a/lib/db/access.php
+++ b/lib/db/access.php
@@ -168,6 +168,17 @@ $moodle_capabilities = array(
)
),
+ '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,
diff --git a/version.php b/version.php
index a32706b02c1..50139940ece 100644
--- a/version.php
+++ b/version.php
@@ -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 = 2007021599.11; // YYYYMMDD = date of the 1.8 branch (don't change)
+ $version = 2007021599.12; // YYYYMMDD = date of the 1.8 branch (don't change)
// 99 = we reached a .10 release! (don't change)
// .XX = release number 1.8.[10,11,12,..]