PluginProbe
Patchstack – WordPress & Plugins Security / 2.3.0
Patchstack – WordPress & Plugins Security v2.3.0
2.3.7 trunk 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.2 2.1.20 2.1.21 2.1.22 2.1.23 2.1.24 2.1.25 2.1.3 2.1.4 2.1.5 2.1.6 All 49 releases
← All changes | includes/multisite.php +2 -62 2.1.242.3.0 View file →
@@ -28,13 +28,8 @@
28 28 if ( ! is_super_admin() ) {
29 29 return;
30 30 }
31 31
32 - // When settings are saved.
33 - if ( isset( $_POST['option_page'], $_POST['PatchstackNonce'] ) && wp_verify_nonce( $_POST['PatchstackNonce'], 'patchstack-option-page' ) ) {
34 - $this->save_settings();
35 - }
36 -
37 32 // When sites are activated.
38 33 if ( isset( $_POST['patchstack_do'], $_POST['PatchstackNonce'], $_POST['sites'] ) && $_POST['patchstack_do'] == 'do_licenses' && wp_verify_nonce( $_POST['PatchstackNonce'], 'patchstack-multisite-activation' ) ) {
39 34 $this->activate_licenses();
40 35 }
@@ -56,9 +51,9 @@
56 51 return;
57 52 }
58 53
59 54 // Determine which sites are already activated and skip those.
60 - $activate = array();
55 + $activate = [];
61 56 $sites = get_sites();
62 57 foreach ( $sites as $site ) {
63 58 if ( in_array( $site->siteurl, $_POST['sites'] ) && get_blog_option( $site->id, 'patchstack_clientid' ) == '' ) {
64 59 array_push( $activate, $site->siteurl );
@@ -71,9 +66,9 @@
71 66 return;
72 67 }
73 68
74 69 // Add the site to the app and retrieve the license for each site.
75 - $licenses = $this->plugin->api->get_site_licenses( array( 'sites' => $activate ) );
70 + $licenses = $this->plugin->api->get_site_licenses( [ 'sites' => $activate ] );
76 71
77 72 // Did an error happen during the multisite license activation?
78 73 if ( isset( $licenses['error'] ) ) {
79 74 $this->error = '<span style="color: #ff6262;">' . $licenses['error'] . '</span><br /><br />';
@@ -89,41 +84,8 @@
89 84 }
90 85 }
91 86
92 87 /**
93 - * When the individual or global settings are saved.
94 - *
95 - * @return void
96 - */
97 - private function save_settings() {
98 - switch ( $_POST['option_page'] ) {
99 - // Save hardening options
100 - case 'patchstack_hardening_settings_group':
101 - $options = array( 'patchstack_auto_update', 'patchstack_json_is_disabled', 'patchstack_register_email_blacklist', 'patchstack_move_logs', 'patchstack_basicscanblock', 'patchstack_userenum', 'patchstack_hidewpversion', 'patchstack_activity_log_is_enabled', 'patchstack_activity_log_failed_logins', 'patchstack_xmlrpc_is_disabled', 'patchstack_captcha_on_comments', 'patchstack_captcha_login_form', 'patchstack_captcha_registration_form', 'patchstack_captcha_reset_pwd_form', 'patchstack_captcha_type', 'patchstack_captcha_public_key', 'patchstack_captcha_public_key_v3', 'patchstack_captcha_public_key_v3_new', 'patchstack_captcha_private_key', 'patchstack_captcha_private_key_v3', 'patchstack_captcha_private_key_v3_new', 'patchstack_application_passwords_disabled' );
102 - $this->save_options( $options );
103 - break;
104 -
105 - // Save firewall settings
106 - case 'patchstack_firewall_settings_group':
107 - $options = array( 'patchstack_geo_block_countries', 'patchstack_geo_block_enabled', 'patchstack_geo_block_inverse', 'patchstack_ip_block_list', 'patchstack_basic_firewall', 'patchstack_autoblock_blocktime', 'patchstack_autoblock_attempts', 'patchstack_autoblock_minutes', 'patchstack_basic_firewall_roles', 'patchstack_disable_htaccess', 'patchstack_add_security_headers', 'patchstack_prevent_default_file_access', 'patchstack_block_debug_log_access', 'patchstack_index_views', 'patchstack_proxy_comment_posting', 'patchstack_image_hotlinking', 'patchstack_firewall_custom_rules', 'patchstack_firewall_custom_rules_loc', 'patchstack_blackhole_log', 'patchstack_whitelist', 'patchstack_firewall_ip_header' );
108 - $this->save_options( $options );
109 - break;
110 -
111 - // Save login settings
112 - case 'patchstack_login_settings_group':
113 - $options = array( 'patchstack_mv_wp_login', 'patchstack_rename_wp_login', 'patchstack_block_bruteforce_ips', 'patchstack_anti_bruteforce_blocktime', 'patchstack_anti_bruteforce_attempts', 'patchstack_anti_bruteforce_minutes', 'patchstack_login_time_block', 'patchstack_login_time_start', 'patchstack_login_time_end', 'patchstack_login_2fa', 'patchstack_login_whitelist' );
114 - $this->save_options( $options );
115 - break;
116 -
117 - // Save cookie notice settings
118 - case 'patchstack_cookienotice_settings_group':
119 - $options = array( 'patchstack_enable_cookie_notice_message', 'patchstack_cookie_notice_message', 'patchstack_cookie_notice_accept_text', 'patchstack_cookie_notice_backgroundcolor', 'patchstack_cookie_notice_textcolor', 'patchstack_cookie_notice_privacypolicy_enable', 'patchstack_cookie_notice_privacypolicy_text', 'patchstack_cookie_notice_privacypolicy_link', 'patchstack_cookie_notice_cookie_expiration', 'patchstack_cookie_notice_opacity', 'patchstack_cookie_notice_credits' );
120 - $this->save_options( $options );
121 - break;
122 - }
123 - }
124 -
125 - /**
126 88 * This will be called when the network admin clicks on the "Sites" button.
127 89 * It will show all sites.
128 90 *
129 91 * @return void
@@ -129,30 +91,8 @@
129 91 * @return void
130 92 */
131 93 public function sites_section_callback() {
132 94 require_once dirname( __FILE__ ) . '/views/pages/multisite-table.php';
133 - }
134 -
135 - /**
136 - * Save an array of options on a specific site.
137 - *
138 - * @param array $options
139 - * @return void
140 - */
141 - private function save_options( $options ) {
142 - if ( isset( $_GET['page'] ) && $_GET['page'] == 'patchstack-multisite-settings' ) {
143 - foreach ( $options as $option ) {
144 - $value = isset( $_POST[ $option ] ) ? $_POST[ $option ] : 0;
145 - $value = map_deep( $value, 'wp_filter_nohtml_kses' );
146 - update_site_option( $option, $value );
147 - }
148 - } else {
149 - foreach ( $options as $option ) {
150 - $value = isset( $_POST[ $option ] ) ? $_POST[ $option ] : 0;
151 - $value = map_deep( $value, 'wp_filter_nohtml_kses' );
152 - update_option( $option, $value );
153 - }
154 - }
155 95 }
156 96
157 97 /**
158 98 * Re-run the migration for a specific multisite site.