PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.0.1
Defender Security – Malware Scanner, Login Security & Firewall v3.0.1
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
defender-security / src / controller / advanced-tools.php

advanced-tools.php in Defender Security – Malware Scanner, Login Security & Firewall 3.0.1, at src/controller/advanced-tools.php

121 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WP_Defender\Controller;
4
5 use WP_Defender\Controller;
6
7 /**
8 * Since advanced tools will have many submodules, this just using for render.
9 *
10 * Class Advanced_Tools
11 * @package WP_Defender\Controller
12 */
13 class Advanced_Tools extends Controller {
14 public $slug = 'wdf-advanced-tools';
15
16 public function __construct() {
17 $this->register_page( esc_html__( 'Tools', 'wpdef' ), $this->slug, [
18 &$this,
19 'main_view'
20 ], $this->parent_slug );
21 add_action( 'defender_enqueue_assets', [ &$this, 'enqueue_assets' ] );
22 }
23
24 public function enqueue_assets() {
25 if ( ! $this->is_page_active() ) {
26 return;
27 }
28
29 $data = [];
30 wp_enqueue_script( 'clipboard' );
31 $data = apply_filters( 'wp_defender_advanced_tools_data', $data );
32 wp_localize_script( 'def-advancedtools', 'advanced_tools', $data );
33 wp_enqueue_script( 'def-advancedtools' );
34 $this->enqueue_main_assets();
35 }
36
37 /**
38 * Render the root element for frontend.
39 */
40 public function main_view() {
41 $this->render( 'main' );
42 }
43
44 /**
45 * Remove settings of submodules.
46 */
47 public function remove_settings() {
48 ( new \WP_Defender\Model\Setting\Mask_Login() )->delete();
49 ( new \WP_Defender\Model\Setting\Security_Headers() )->delete();
50 ( new \WP_Defender\Model\Setting\Password_Protection() )->delete();
51 ( new \WP_Defender\Model\Setting\Password_Reset() )->delete();
52 ( new \WP_Defender\Model\Setting\Recaptcha() )->delete();
53 }
54
55 /**
56 * Drop Defender's directories and files in /uploads/.
57 *
58 * @since 2.4.6
59 */
60 public function remove_data() {
61 ( new \WP_Defender\Controller\Password_Reset() )->remove_data();
62 $upload_def_dir = $this->get_tmp_path();
63 if ( empty( $upload_def_dir ) ) {
64 return;
65 }
66 global $wp_filesystem;
67 if ( is_null( $wp_filesystem ) ) {
68 WP_Filesystem();
69 }
70
71 $maxmind_dir = $upload_def_dir . DIRECTORY_SEPARATOR . 'maxmind';
72 $wp_filesystem->delete( $maxmind_dir, true );
73 $arr_deleted_files = array(
74 // Files without '.log'. We can delete it when we switch to the <category>.log format completely.
75 'audit',
76 'internal',
77 'malware_scan',
78 'notification-audit',
79 'scan',
80 'password',
81 // Files with '.log'.
82 'defender.log',
83 'audit.log',
84 'firewall.log',
85 'internal.log',
86 'malware_scan.log',
87 'notification-audit.log',
88 'scan.log',
89 'password.log',
90 // Old category titles.
91 'backlog',
92 'mask',
93 'notification',
94 );
95
96 foreach ( $arr_deleted_files as $deleted_file ) {
97 $wp_filesystem->delete( $deleted_file );
98 }
99 }
100
101 public function data_frontend() {
102 return [
103 'mask_login' => wd_di()->get( Mask_Login::class )->data_frontend(),
104 'security_headers' => wd_di()->get( Security_Headers::class )->data_frontend(),
105 'pwned_passwords' => wd_di()->get( Password_Protection::class )->data_frontend(),
106 'recaptcha' => wd_di()->get( Recaptcha::class )->data_frontend(),
107 ];
108 }
109
110 public function to_array() {}
111
112 public function import_data( $data ) {}
113
114 /**
115 * @return array
116 */
117 public function export_strings() {
118 return [];
119 }
120 }
121