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/traits/defender-bootstrap.php +38 -16 6.2.0 → 6.3.0 View file →
@@ -41,9 +41,8 @@
41 41 use WP_Defender\Component\Logger\Rotation_Logger;
42 42 use WP_Defender\Component\Firewall as Firewall_Component;
43 43 use WP_Defender\Controller\Firewall as Firewall_Controller;
44 44 use WP_Defender\Controller\Hub_Connector as Hub_Connector_Controller;
45 -use WP_Defender\Model\Onboard as Onboard_Model;
46 45 use WP_Defender\Controller\Rate as Rate_Controller;
47 46 use WP_Defender\Component\Rate as Rate_Component;
48 47 use WP_Defender\Upgrader;
49 48
@@ -166,8 +165,39 @@
166 165 $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared
167 166 }
168 167
169 168 /**
169 + * Creates the audit log table used for caching audit events.
170 + */
171 + protected function create_table_audit_log(): void {
172 + global $wpdb;
173 +
174 + $charset_collate = $wpdb->get_charset_collate();
175 + // Audit log table. Though our data mainly store on API side, we will need a table for caching.
176 + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->base_prefix}defender_audit_log (
177 + `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
178 + `timestamp` int NOT NULL,
179 + `event_type` varchar(255) NOT NULL,
180 + `action_type` varchar(255) NOT NULL,
181 + `site_url` varchar(255) NOT NULL,
182 + `user_id` int NOT NULL,
183 + `context` varchar(255) NOT NULL,
184 + `ip` varchar(45) NOT NULL,
185 + `msg` varchar(255) NOT NULL,
186 + `blog_id` int NOT NULL,
187 + `synced` int NOT NULL,
188 + `ttl` int NOT NULL,
189 + PRIMARY KEY (`id`),
190 + KEY `event_type` (`event_type`),
191 + KEY `action_type` (`action_type`),
192 + KEY `user_id` (`user_id`),
193 + KEY `context` (`context`),
194 + KEY `ip` (`ip`)
195 +) $charset_collate;";
196 + $wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
197 + }
198 +
199 + /**
170 200 * Creates Defender's tables.
171 201 *
172 202 * @since 2.7.1 No use dbDelta because PHP v8.1 triggers an error when calling query "DESCRIBE {$table};" if the
173 203 * table doesn't exist.
@@ -260,8 +290,10 @@
260 290 // Create Blocklist table.
261 291 $this->create_table_blocklist();
262 292 // Create Quarantine table.
263 293 $this->create_table_quarantine();
294 + // Create Audit Log table.
295 + $this->create_table_audit_log();
264 296 }
265 297
266 298 /**
267 299 * Check if all quarantine-dependent tables use the InnoDB storage engine.
@@ -441,12 +473,12 @@
441 473 }'
442 474 );
443 475
444 476 $css_files = array(
445 - 'defender' => WP_DEFENDER_BASE_URL . 'assets/css/styles.css',
446 - 'def-sui' => WP_DEFENDER_BASE_URL . 'assets/css/shared-ui.css',
447 - 'def-admin' => WP_DEFENDER_BASE_URL . 'assets/css/admin.css',
448 - 'def-showcase' => WP_DEFENDER_BASE_URL . 'assets/css/showcase.css',
477 + 'defender' => WP_DEFENDER_BASE_URL . 'assets/css/styles.css',
478 + 'def-sui' => WP_DEFENDER_BASE_URL . 'assets/css/shared-ui.css',
479 + 'def-admin' => WP_DEFENDER_BASE_URL . 'assets/css/admin.css',
480 + 'def-core-ui-style' => WP_DEFENDER_BASE_URL . 'assets/css/core-ui.css',
449 481 );
450 482
451 483 foreach ( $css_files as $slug => $file ) {
452 484 wp_register_style( $slug, $file, array(), DEFENDER_VERSION );
@@ -486,12 +518,8 @@
486 518 $base_url . 'assets/js/core-ui.js',
487 519 array( 'def-vue', 'def-manifest' ),
488 520 ),
489 521 // React files.
490 - 'def-showcase' => array(
491 - $base_url . 'assets/js/showcase.js',
492 - $dependencies,
493 - ),
494 522 'def-setup-wizard' => array(
495 523 $base_url . 'assets/js/setup-wizard.js',
496 524 $dependencies,
497 525 ),
@@ -520,14 +548,9 @@
520 548 private function localize_script(): void {
521 549 $wpmu_dev = new WPMUDEV();
522 550 global $wp_defender_central;
523 551
524 - $misc = array();
525 - $data_tracking = wd_di()->get( Data_Tracking::class );
526 - $is_tracking = $data_tracking->show_tracking_modal();
527 - if ( $is_tracking ) {
528 - $misc = $data_tracking->get_tracking_modal();
529 - }
552 + $misc = array();
530 553 $misc['high_contrast'] = defender_high_contrast();
531 554 $is_wp_org = defender_is_wp_org_version();
532 555 if ( $is_wp_org ) {
533 556 $misc['rating'] = array();
@@ -565,9 +588,8 @@
565 588 'wpmudev_url' => WP_DEFENDER_DOCS_LINK,
566 589 'wpmudev_support_ticket_text' => defender_support_ticket_text(),
567 590 'wpmudev_api_base_url' => $wpmu_dev->get_api_base_url(),
568 591 'upgrade_title' => esc_html__( 'UPGRADE TO PRO', 'defender-security' ),
569 - 'tracking_modal' => $is_tracking ? 'show' : 'hide',
570 592 'hosted' => $wpmu_dev->is_wpmu_hosting(),
571 593 'file_upload_nonce' => wp_create_nonce( 'defender_file_upload' ),
572 594 'wpmudev_hub_link' => 'https://wpmudev.com/hub2/',
573 595 )