mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-17009 restore of mnet users - Prevent teachers to restore this type of backups to different sites. Merged from 19_STABLE
This commit is contained in:
parent
32378e7526
commit
b1ee0c8690
1 changed files with 33 additions and 15 deletions
|
@ -270,6 +270,8 @@
|
||||||
print_error("cannotrestoreadminoredit");
|
print_error("cannotrestoreadminoredit");
|
||||||
}
|
}
|
||||||
$show_continue_button = true;
|
$show_continue_button = true;
|
||||||
|
$messages = array();
|
||||||
|
|
||||||
//Check if we've selected any mod's user info and restore->users
|
//Check if we've selected any mod's user info and restore->users
|
||||||
//is set to none. Change it to course and inform.
|
//is set to none. Change it to course and inform.
|
||||||
if ($restore->users == 2) {
|
if ($restore->users == 2) {
|
||||||
|
@ -285,36 +287,52 @@
|
||||||
$changed = 1;
|
$changed = 1;
|
||||||
}
|
}
|
||||||
if ($changed) {
|
if ($changed) {
|
||||||
echo get_string ("noteuserschangednonetocourse");
|
$messages[] = get_string ("noteuserschangednonetocourse");
|
||||||
echo "<hr noshade size=\"1\">";
|
|
||||||
$restore->users = 1;
|
$restore->users = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// If restoring users and backup has mnet remote users and we are restoring to different site, forbid restore to non-admins. MDL-17009
|
||||||
|
if ($restore->users != 2 && /// If restoring users
|
||||||
|
!empty($info->mnet_remoteusers) && $info->mnet_remoteusers === 'true' && /// and backup contains remote users
|
||||||
|
$info->original_wwwroot !== $CFG->wwwroot) { /// and backup is being restored to different site
|
||||||
|
|
||||||
|
/// If user is admin (by 'moodle/user:create' cap), warn about conversion to local auth if missing mnet hosts and continue restore
|
||||||
|
if (has_capability('moodle/user:create', get_context_instance(CONTEXT_SYSTEM))) {
|
||||||
|
$messages[] = get_string('mnetrestore_extusers_admin', 'admin');
|
||||||
|
$show_continue_button = true;
|
||||||
|
|
||||||
|
/// else, notify about the thing (suggesting to ask admin) and stop restore
|
||||||
|
} else {
|
||||||
|
$messages[] = get_string('mnetrestore_extusers_noadmin', 'admin');
|
||||||
|
$show_continue_button = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Save the restore session object
|
//Save the restore session object
|
||||||
$SESSION->restore = $restore;
|
$SESSION->restore = $restore;
|
||||||
|
|
||||||
|
echo "<div style='text-align:center'>";
|
||||||
|
|
||||||
|
/// Printout messages
|
||||||
|
foreach ($messages as $message) {
|
||||||
|
echo '<p>' . $message . '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Warning and button
|
||||||
if ($show_continue_button) {
|
if ($show_continue_button) {
|
||||||
//Print the continue button to execute the restore NOW !!!!
|
//Print the continue button to execute the restore NOW !!!!
|
||||||
//All is prepared !!!
|
//All is prepared !!!
|
||||||
echo "<div style='text-align:center'>";
|
|
||||||
$hidden["launch"] = "execute";
|
$hidden["launch"] = "execute";
|
||||||
$hidden["file"] = $file;
|
$hidden["file"] = $file;
|
||||||
$hidden["id"] = $id;
|
$hidden["id"] = $id;
|
||||||
print_string('longtimewarning','admin');
|
print_string('longtimewarning','admin');
|
||||||
|
|
||||||
if ($restore->users && !empty($info->mnet_remoteusers)
|
|
||||||
&& $info->mnet_remoteusers === 'true') {
|
/// Restore button
|
||||||
if ($info->original_wwwroot === $CFG->wwwroot) {
|
|
||||||
print '<p>'.get_string('mnetrestore_extusers','admin').'</p>';
|
|
||||||
} else {
|
|
||||||
print '<p>'. get_string('mnetrestore_extusers_mismatch','admin').'</p>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print_single_button("restore.php", $hidden, get_string("restorecoursenow"),"post");
|
print_single_button("restore.php", $hidden, get_string("restorecoursenow"),"post");
|
||||||
echo "</div>";
|
|
||||||
} else {
|
|
||||||
//Show error
|
|
||||||
print_error('error');
|
|
||||||
}
|
}
|
||||||
|
echo "</div>";
|
||||||
|
|
||||||
//If we are here. Something must be wrong. Debug !!!
|
//If we are here. Something must be wrong. Debug !!!
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue