Example #1
0
 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;
 }
Example #2
0
 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')));
             }
         }
     }
 }