From 47d87f7243e303a5ce1d027be17da3ea3e291aa3 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++; }