PluginProbe
WebTotem Security / 2.2.2
WebTotem Security v2.2.2
3.0.2 3.0.1 3.0.0 trunk 1.0 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 2.0 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.1 2.2.2 2.2.3 All 110 releases
← All changes | services.php +41 -5 2.1.62.2.2 View file →
@@ -43,12 +43,15 @@
43 43 if (!$wp_filesystem->put_contents($target_file, $file['file'])) {
44 44 WTSEC_LIBRARY_Session::setNotification("warning", WTSEC_LIBRARY_Localization::lmsg('could_not_install_file', ['service' => $service, 'directory' => $target_dir]));
45 45 } else {
46 46 wtsec_app()->set($_service . '_installed_file', $file['name']);
47 + if ($service === "AM") {
48 + wtsec_addCheckFile($file['name']);
49 + }
47 50 }
48 51 }
49 52 if ($service !== "AM") {
50 - wtsec_serviceConnect($uid, $service, $domain . '/' . $file['name']);
53 + //wtsec_serviceConnect($uid, $service, $domain . '/' . $file['name']);
51 54 }
52 55 } catch (Exception $e) {
53 56 WTSEC_LIBRARY_Session::setNotification("error", $e->getMessage());
54 57 return false;
@@ -64,9 +67,9 @@
64 67 break;
65 68 case $_service . "_connect":
66 69 $file = wtsec_getInstalledFile($_service);
67 70 if ($file) {
68 - wtsec_serviceConnect($uid, $service, $domain . '/' . $file);
71 + //wtsec_serviceConnect($uid, $service, $domain . '/' . $file);
69 72 } else {
70 73 WTSEC_LIBRARY_Session::setNotification("warning", WTSEC_LIBRARY_Localization::lmsg('file_not_found', ['service' => $service]));
71 74 }
72 75 break;
@@ -94,8 +97,32 @@
94 97 }
95 98 return true;
96 99 }
97 100
101 +// Add check file if plugin is activated
102 +function wtsec_addCheckFile($name){
103 + global $wp_filesystem;
104 +
105 + if (empty($wp_filesystem)) {
106 + require_once(ABSPATH . '/wp-admin/includes/file.php');
107 + WP_Filesystem();
108 + }
109 +
110 + //retry checking
111 + if (empty($wp_filesystem)) {
112 + WTSEC_LIBRARY_Session::setNotification("error", "WP FileSystem path error");
113 + return false;
114 + }
115 +
116 + $target_dir = $wp_filesystem->find_folder(WTSEC_PLUGIN_PATH);
117 + $target_file = trailingslashit($target_dir) . 'generate.php';
118 +
119 + if ($wp_filesystem->put_contents($target_file, '<?php exit(); ?>'.$name, FS_CHMOD_FILE)) {
120 + return true;
121 + }
122 + return false;
123 +}
124 +
98 125 function wtsec_checkStatus($id, $service)
99 126 {
100 127 $service = ucfirst(strtolower($service));
101 128 $is_active = null;
@@ -121,12 +148,21 @@
121 148 $result = WTSEC_LIBRARY_WT::generateAmFile($id);
122 149 if (!isset($result['data']['auth']['am']['install'])) {
123 150 $file = ['filename' => null, "body" => null];
124 151 } else {
125 - $url = $result['data']['auth']['am']['install'];
126 - $file = WTSEC_LIBRARY_WT::getFileByUrl($url);
152 + $result = $result['data']['auth']['am']['install'];
153 +
154 + $url = $result['downloadLink'];
155 + $amFilename = $result['amFilename'];
156 + $wafFilename = $result['wafFilename'];
157 +
158 + if($wafFilename){
159 + wtsec_app()->set('waf_installed_file', $wafFilename);
160 + }
161 +
162 + $file = WTSEC_LIBRARY_WT::getFileByUrl($url, $amFilename);
127 163 if (empty($file)) {
128 - $file = WTSEC_LIBRARY_WT::getFileByUrl($url);
164 + $file = WTSEC_LIBRARY_WT::getFileByUrl($url, $amFilename);
129 165 }
130 166 }
131 167
132 168 $name = $file["filename"];