| @@ -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 | |