From ad3e89199bb6243cdffd6029ef1d620d5e8009b7 Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Mon, 7 Feb 2022 12:01:07 +0100 Subject: [PATCH] chg: [settingTable] Added value validation before saving the setting --- src/Model/Table/SettingsTable.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Model/Table/SettingsTable.php b/src/Model/Table/SettingsTable.php index cbd14c2..2eb941c 100644 --- a/src/Model/Table/SettingsTable.php +++ b/src/Model/Table/SettingsTable.php @@ -74,10 +74,18 @@ class SettingsTable extends AppTable } } $setting['value'] = $value ?? ''; + if (isset($setting['test'])) { + $validationResult = $this->SettingsProvider->evaluateFunctionForSetting($setting['test'], $setting); + if ($validationResult !== true) { + $errors[] = $validationResult; + $setting['errorMessage'] = $validationResult; + } + } if (empty($errors) && !empty($setting['beforeSave'])) { $beforeSaveResult = $this->SettingsProvider->evaluateFunctionForSetting($setting['beforeSave'], $setting); if ($beforeSaveResult !== true) { $errors[] = $beforeSaveResult; + $setting['errorMessage'] = $validationResult; } } if (empty($errors)) {