diff --git a/acp/wpn_acp_module.php b/acp/wpn_acp_module.php index 1471b7e..ad44fa5 100644 --- a/acp/wpn_acp_module.php +++ b/acp/wpn_acp_module.php @@ -98,7 +98,7 @@ public function display_settings() $this->template->assign_vars([ 'S_WEBPUSH_ENABLE' => $this->config['wpn_webpush_enable'], 'WEBPUSH_VAPID_PUBLIC' => $this->config['wpn_webpush_vapid_public'], - 'WEBPUSH_VAPID_PRIVATE' => $this->config['wpn_webpush_vapid_private'], + 'WEBPUSH_VAPID_PRIVATE' => !$this->config['wpn_webpush_vapid_private'] ?: '********', // Replace private key with asterixes 'U_ACTION' => $this->u_action, ]); } @@ -117,6 +117,12 @@ public function save_settings() 'wpn_webpush_vapid_private'=> ['validate' => 'string:25:255', 'lang' => 'WEBPUSH_VAPID_PRIVATE'], ]; + // Do not validate and update private key field if the content is ******** and the key was already set + if ($config_array['wpn_webpush_vapid_private'] == '********' && $this->config['wpn_webpush_vapid_private']) + { + unset($display_settings['wpn_webpush_vapid_private'], $config_array['wpn_webpush_vapid_private']); + } + if ($config_array['wpn_webpush_enable']) { // Validate config values @@ -135,9 +141,10 @@ public function save_settings() $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_CONFIG_WEBPUSH'); - $this->config->set('wpn_webpush_enable', $config_array['wpn_webpush_enable']); - $this->config->set('wpn_webpush_vapid_public', $config_array['wpn_webpush_vapid_public']); - $this->config->set('wpn_webpush_vapid_private', $config_array['wpn_webpush_vapid_private']); + foreach ($config_array as $config_name => $config_value) + { + $this->config->set($config_name, $config_value); + } trigger_error($this->lang->lang('CONFIG_UPDATED') . adm_back_link($this->u_action), E_USER_NOTICE); }