From 65aceea7edb77f80a5ea354500449e06797def31 Mon Sep 17 00:00:00 2001 From: Mihail Geshoski Date: Wed, 10 Mar 2021 11:08:48 +0800 Subject: [PATCH] MDL-67870 backup: Skip value change if setting is locked by hierarchy The given condition in the if statement did not take into account cases when the setting is locked by hierarchy. Settings which are locked by hierarchy should should keep their current values which were inherited from the parent. --- backup/util/ui/backup_ui_stage.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backup/util/ui/backup_ui_stage.class.php b/backup/util/ui/backup_ui_stage.class.php index aff941b9542..a02a5cb2a4f 100644 --- a/backup/util/ui/backup_ui_stage.class.php +++ b/backup/util/ui/backup_ui_stage.class.php @@ -116,7 +116,9 @@ class backup_ui_stage_initial extends backup_ui_stage { if (isset($data->$name) && $data->$name != $setting->get_value()) { $setting->set_value($data->$name); $changes++; - } else if (!isset($data->$name) && $setting->get_ui_type() == backup_setting::UI_HTML_CHECKBOX && $setting->get_value()) { + } else if (!isset($data->$name) && $setting->get_value() && + $setting->get_ui_type() == backup_setting::UI_HTML_CHECKBOX && + $setting->get_status() !== backup_setting::LOCKED_BY_HIERARCHY) { $setting->set_value(0); $changes++; }