mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-28488 backup - conditionaly apply defaults based on mode
Some modes of backup cannot be preloaded with general backup settings because they may conflict with the definitions required/set by the mode (for example, import backups are, by definition, without users always, so we cannot apply one default in the opposite direction). So, after the patch, current general_backup setting will be only applied to general backups, import/hub modes won't be using any default and automated backup defaults should be loaded here (TODO)
This commit is contained in:
parent
2a4ba40f31
commit
59fc0cbdb7
2 changed files with 30 additions and 2 deletions
|
@ -339,7 +339,7 @@ class backup_controller extends backup implements loggable {
|
|||
|
||||
protected function apply_defaults() {
|
||||
$this->log('applying plan defaults', backup::LOG_DEBUG);
|
||||
backup_controller_dbops::apply_general_config_defaults($this);
|
||||
backup_controller_dbops::apply_config_defaults($this);
|
||||
$this->set_status(backup::STATUS_CONFIGURED);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -401,12 +401,40 @@ abstract class backup_controller_dbops extends backup_dbops {
|
|||
return $DB->get_record('course', array('id' => $courseid), 'fullname, shortname, startdate');
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default values for the settings in a backup operation
|
||||
*
|
||||
* Based on the mode of the backup it will delegate the process to
|
||||
* other methods like {@link apply_general_config_defaults} ...
|
||||
* to get proper defaults loaded
|
||||
*
|
||||
* @param backup_controller $controller
|
||||
*/
|
||||
public static function apply_config_defaults(backup_controller $controller) {
|
||||
// Based on the mode of the backup (general, automated, import, hub...)
|
||||
// decide the action to perform to get defaults loaded
|
||||
$mode = $controller->get_mode();
|
||||
|
||||
switch ($mode) {
|
||||
case backup::MODE_GENERAL:
|
||||
// Load the general defaults
|
||||
self::apply_general_config_defaults($controller);
|
||||
break;
|
||||
case backup::MODE_AUTOMATED:
|
||||
// TODO: Move the loading from automatic stuff to here
|
||||
break;
|
||||
default:
|
||||
// Nothing to do for other modes (IMPORT/HUB...). Some day we
|
||||
// can define defaults (admin UI...) for them if we want to
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the controller settings default values from the backup config.
|
||||
*
|
||||
* @param backup_controller $controller
|
||||
*/
|
||||
public static function apply_general_config_defaults(backup_controller $controller) {
|
||||
private static function apply_general_config_defaults(backup_controller $controller) {
|
||||
$settings = array(
|
||||
// Config name => Setting name
|
||||
'backup_general_users' => 'users',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue