diff --git a/actions/admin/settings/110.accounts.php b/actions/admin/settings/110.accounts.php index 4f095731..2c8b445d 100644 --- a/actions/admin/settings/110.accounts.php +++ b/actions/admin/settings/110.accounts.php @@ -95,6 +95,14 @@ return array( 'type' => 'bool', 'default' => false, 'save_method' => 'storeSettingField', + 'dependency' => array( + 'fieldname' => 'panel_allow_preset_admin', + 'fielddata' => array( + 'settinggroup' => 'panel', + 'varname' => 'allow_preset_admin', + ), + 'onlyif' => 0 + ) ), 'panel_allow_preset_admin' => array( 'label' => $lng['serversettings']['allow_password_reset_admin'], @@ -103,6 +111,14 @@ return array( 'type' => 'bool', 'default' => false, 'save_method' => 'storeSettingField', + 'dependency' => array( + 'fieldname' => 'panel_allow_preset', + 'fielddata' => array( + 'settinggroup' => 'panel', + 'varname' => 'allow_preset', + ), + 'onlyif' => 1 + ) ), ), ), diff --git a/index.php b/index.php index b57885c7..4bbe2e1f 100644 --- a/index.php +++ b/index.php @@ -305,14 +305,19 @@ if($action == 'forgotpwd') } if($adminchecked) + { if($settings['panel']['allow_preset_admin'] != '1') { $message = $lng['pwdreminder']['notallowed']; unset ($adminchecked); } - if($settings['panel']['allow_preset'] != '1') + } + else { - $message = $lng['pwdreminder']['notallowed']; + if($settings['panel']['allow_preset'] != '1') + { + $message = $lng['pwdreminder']['notallowed']; + } } eval("echo \"" . getTemplate("fpwd") . "\";"); diff --git a/lib/functions/settings/function.storeSettingField.php b/lib/functions/settings/function.storeSettingField.php index 5955d7f3..fdb7e5ce 100644 --- a/lib/functions/settings/function.storeSettingField.php +++ b/lib/functions/settings/function.storeSettingField.php @@ -30,6 +30,17 @@ function storeSettingField($fieldname, $fielddata, $newfieldvalue) { toggleCronStatus($fielddata['cronmodule'], $newfieldvalue); } + + /* + * satisfy dependencies + */ + if(isset($fielddata['dependency']) && is_array($fielddata['dependency'])) + { + if((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue) + { + storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue); + } + } return array($fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue); }