public function set_all($settings) { $retval = array('old_settings' => $this->settings, 'new_settings' => $this->settings, 'errors' => array(), 'messages' => array(), 'saved' => false); $validator = ITSEC_Modules::get_validator($this->get_id()); if (is_null($validator)) { $retval['errors'][] = new WP_Error('itsec-settings-missing-validator-for-' . $this->get_id(), sprintf(__('The data validator for %1$s is missing. Data for the module cannot be saved without the validator. This error could indicate a bad install of iThemes Security. Please remove the plugin and reinstall it. If this message persists, please contact support and send them this error message.', 'better-wp-security'), $this->get_id())); } else { $validator->validate($settings); $retval['errors'] = $validator->get_errors(); $retval['messages'] = $validator->get_messages(); if ($validator->can_save()) { $this->settings = $validator->get_settings(); ITSEC_Storage::set($this->get_id(), $this->settings); $this->after_save(); $this->handle_settings_changes($retval['old_settings']); $retval['new_settings'] = $this->settings; $retval['saved'] = true; } else { ITSEC_Response::set_success(false); } } ITSEC_Response::add_errors($retval['errors']); ITSEC_Response::add_messages($retval['messages']); return $retval; }
public function handle_ajax_request($data) { if ('reset-api-key' === $data['method']) { $defaults = ITSEC_Modules::get_defaults($this->id); $results = ITSEC_Modules::set_settings($this->id, $defaults); ITSEC_Response::set_response($results['saved']); ITSEC_Response::add_errors($results['errors']); ITSEC_Response::add_messages($results['messages']); if ($results['saved']) { ITSEC_Response::reload_module($this->id); } else { if (empty($results['errors'])) { ITSEC_Response::add_error(new WP_Error('itsec-network-brute-force-settings-page-handle-ajax-request-bad-response', __('An unknown error prevented the API key from being reset properly. An unrecognized response was received. Please wait a few minutes and try again.', 'better-wp-security'))); } } } }