PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.3.0
Defender Security – Malware Scanner, Login Security & Firewall v6.3.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
← All changes | src/controller/class-dashboard.php +24 -4 6.2.1 → 6.3.0 View file →
@@ -6,8 +6,9 @@
6 6 */
7 7
8 8 namespace WP_Defender\Controller;
9 9
10 +use WP_Defender\Component\Audit;
10 11 use WP_Defender\Event;
11 12 use Calotes\Helper\HTTP;
12 13 use Calotes\Helper\Route;
13 14 use WP_Defender\Model\Setting\Login_Lockout;
@@ -21,8 +22,9 @@
21 22 use WP_Defender\Behavior\WPMUDEV;
22 23 use WP_Defender\Component\Feature_Modal;
23 24 use WP_Defender\Component\Hub_Connector as Hub_Connector_Component;
24 25 use WP_Defender\Model\Setting\Audit_Logging as Audit_Logging_Settings;
26 +use WP_Defender\Model\Audit_Log;
25 27 use WP_Defender\Model\Setting\Global_Ip_Lockout;
26 28 use WP_Defender\Component\Config\Config_Hub_Helper;
27 29 use WP_Defender\Component\IP\Global_IP as Global_IP_Component;
28 30 use WP_Defender\Model\Setting\Session_Protection;
@@ -149,10 +151,23 @@
149 151 $security_tweaks = wd_di()->get( \WP_Defender\Controller\Security_Tweaks::class );
150 152 $security_tweaks->refresh_tweaks_status();
151 153 $security_tweaks_data = $security_tweaks->dashboard_widget();
152 154
153 - $audit_model = wd_di()->get( Audit_Logging_Settings::class );
154 - $firewall = wd_di()->get( Firewall::class )->get_summary();
155 + $audit_model = wd_di()->get( Audit_Logging_Settings::class );
156 + $enabled_audit = $audit_model->is_active();
157 + // Audit summary.
158 + $audit_events_logged = 0;
159 + $last_event_time = esc_html__( '-', 'defender-security' );
160 + if ( $enabled_audit ) {
161 + $audit_events_logged = Audit::get_audit_events_per_week();
162 + $audit_last = Audit_Log::get_last();
163 + if ( is_object( $audit_last ) ) {
164 + $last_event_time = $this->get_date( $audit_last->timestamp );
165 + }
166 + }
167 +
168 + // Firewall summary.
169 + $firewall = wd_di()->get( Firewall::class )->get_summary();
155 170 // Different lockout types.
156 171 $enabled_login = wd_di()->get( Login_Lockout::class )->enabled;
157 172 $enabled_nf = wd_di()->get( Notfound_Lockout::class )->enabled;
158 173 $enabled_ua = wd_di()->get( User_Agent_Lockout::class )->enabled;
@@ -176,9 +191,11 @@
176 191 'antibot' => wd_di()->get( Antibot_Global_Firewall::class )->data_frontend(),
177 192 ),
178 193 'site_id' => wd_di()->get( WPMUDEV::class )->get_site_id(),
179 194 'auditData' => array(
180 - 'enabled' => $audit_model->is_active(),
195 + 'enabled' => $enabled_audit,
196 + 'eventsLogged' => $audit_events_logged,
197 + 'lastEvent' => $last_event_time,
181 198 ),
182 199 'sessionProtection' => wd_di()->get( Session_Protection::class )->export(),
183 200 'showReportScheduleNotice' => ! defender_is_wp_org_version()
184 201 && (bool) get_site_option( self::REPORT_SCHEDULE_NOTICE_OPTION, false ),
@@ -195,8 +212,9 @@
195 212 }
196 213
197 214 $wizard_action = HTTP::get( 'wizard_action' );
198 215 $wizard_source = HTTP::get( 'source' );
216 + $nonce = HTTP::get( '_wpnonce' );
199 217
200 218 // Fallback completion marker for setup wizard integrations rendered on dashboard.
201 219 // This prevents onboarding loops if client-side completion request fails.
202 220 if (
@@ -202,8 +220,10 @@
202 220 if (
203 221 'setup_wizard' === $wizard_source
204 222 && in_array( $wizard_action, array( 'view_results', 'close_wizard', 'finish_wizard' ), true )
205 223 && current_user_can( 'manage_options' )
224 + && is_string( $nonce )
225 + && false !== wp_verify_nonce( $nonce, 'wpdef_setup_wizard' )
206 226 ) {
207 227 update_site_option( 'wp_defender_shown_activator', true );
208 228 }
209 229
@@ -275,9 +295,9 @@
275 295 );
276 296
277 297 wp_enqueue_style(
278 298 $handle,
279 - WP_DEFENDER_BASE_URL . 'assets/css/showcase.css',
299 + WP_DEFENDER_BASE_URL . 'assets/css/core-ui.css',
280 300 array(),
281 301 DEFENDER_VERSION
282 302 );
283 303