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() {
|
protected function apply_defaults() {
|
||||||
$this->log('applying plan defaults', backup::LOG_DEBUG);
|
$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);
|
$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');
|
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.
|
* Sets the controller settings default values from the backup config.
|
||||||
*
|
*
|
||||||
* @param backup_controller $controller
|
* @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(
|
$settings = array(
|
||||||
// Config name => Setting name
|
// Config name => Setting name
|
||||||
'backup_general_users' => 'users',
|
'backup_general_users' => 'users',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue