MDL-20834 new cap moodle/backup:userinfo - controls who can backupuser

related info. Disabled by default to teachers, oh my! :-( Merged from 19_STABLE
This commit is contained in:
Eloy Lafuente
2009-11-18 19:38:51 +00:00
parent a9ec903149
commit f2a0da6c41
4 changed files with 46 additions and 16 deletions
+10
View 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)) {
@@ -16,10 +19,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))) {
print_error("cannotuseadmin", '', $loginurl);
}
$backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
}
@@ -65,6 +70,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 & blogs backups. A Warning is showed to
//inform the user.
+24 -15
View 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)) {
@@ -17,10 +20,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))) {
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";
+11
View 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,
+1 -1
View 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