Merge branch 'MDL-63381_master_v3' of https://github.com/TomoTsuyuki/moodle

This commit is contained in:
Eloy Lafuente (stronk7) 2021-04-20 23:06:42 +02:00
commit 7c75781518
15 changed files with 395 additions and 11 deletions

View file

@ -99,6 +99,13 @@ class backup_root_task extends backup_task {
$this->add_setting($roleassignments);
$users->add_dependency($roleassignments);
// Define permission.
if ($this->plan->get_mode() == backup::MODE_IMPORT) {
$permissions = new backup_permissions_setting('permissions', base_setting::IS_BOOLEAN, false);
$permissions->set_ui(new backup_setting_ui_checkbox($permissions, get_string('rootsettingpermissions', 'backup')));
$this->add_setting($permissions);
}
// Define activities
$activities = new backup_activities_setting('activities', base_setting::IS_BOOLEAN, true);
$activities->set_ui(new backup_setting_ui_checkbox($activities, get_string('rootsettingactivities', 'backup')));

View file

@ -65,6 +65,12 @@ class backup_filename_setting extends backup_generic_setting {
*/
class backup_users_setting extends backup_generic_setting {}
/**
* root setting to control if backup will include permission information by roles
*/
class backup_permissions_setting extends backup_generic_setting {
}
/**
* root setting to control if backup will include group information depends on @backup_users_setting
*

View file

@ -146,6 +146,19 @@ class restore_root_task extends restore_task {
$this->add_setting($roleassignments);
$users->add_dependency($roleassignments);
// Define permissions.
$defaultvalue = false; // Safer default.
$changeable = false;
// Enable when available, or key doesn't exist (backward compatibility).
if (!array_key_exists('permissions', $rootsettings) || !empty($rootsettings['permissions'])) {
$defaultvalue = true;
$changeable = true;
}
$permissions = new restore_permissions_setting('permissions', base_setting::IS_BOOLEAN, $defaultvalue);
$permissions->set_ui(new backup_setting_ui_checkbox($permissions, get_string('rootsettingpermissions', 'backup')));
$permissions->get_ui()->set_changeable($changeable);
$this->add_setting($permissions);
// Define activitites
$defaultvalue = false; // Safer default
$changeable = false;

View file

@ -43,6 +43,12 @@ class restore_generic_setting extends root_backup_setting {}
*/
class restore_users_setting extends restore_generic_setting {}
/**
* root setting to control if restore will create override permission information by roles
*/
class restore_permissions_setting extends restore_generic_setting {
}
/**
* root setting to control if restore will create groups/grouping information. Depends on @restore_users_setting
*

View file

@ -2058,7 +2058,9 @@ class restore_ras_and_caps_structure_step extends restore_structure_step {
if ($this->get_setting_value('role_assignments')) {
$paths[] = new restore_path_element('assignment', '/roles/role_assignments/assignment');
}
$paths[] = new restore_path_element('override', '/roles/role_overrides/override');
if ($this->get_setting_value('permissions')) {
$paths[] = new restore_path_element('override', '/roles/role_overrides/override');
}
return $paths;
}