PluginProbe
WebTotem Security / 1.0
WebTotem Security v1.0
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 | library/WT.php +261 -132 2.11.0 View file →
@@ -2,13 +2,13 @@
2 2
3 3
4 4 class WTSEC_LIBRARY_WT
5 5 {
6 - const URL = "https://api.wtotem.com/graphql";
6 + const URL = "https://api.wtotem.com/v1/graphql";
7 7
8 8 public static function auth($key)
9 9 {
10 - $payload = '{"query":"mutation{\n guest{\n apiKeys{\n auth(apiKey:\"' . $key . '\"),{\n token{\n value,refreshToken,expiresIn\n }\n }\n }\n }\n}"}';
10 + $payload = '{"query":"mutation{\n apiServiceMutation{\n auth(apiKey:\"' . $key . '\"){\n value\n refreshToken\n expiresIn\n }\n }\n}\n\n"}';
11 11 return self::requestApi($payload);
12 12 }
13 13
14 14 protected static function requestApi($payload, $token = false, $repeat = false)
@@ -19,9 +19,9 @@
19 19 $args = [
20 20 'body' => $payload,
21 21 'timeout' => '15',
22 22 'sslverify' => false,
23 - 'headers' => ['Content-Type:application/json', 'Content-Type' => 'application/json', 'source:WORDPRESS', 'Accept: application/json'],
23 + 'headers' => ['Content-Type:application/json'],
24 24 ];
25 25 if (!is_null($token) && $token) {
26 26 $authorization = "Bearer " . $token;
27 27 $args['headers'] = array_merge($args['headers'], ["Authorization" => $authorization]);
@@ -38,10 +38,10 @@
38 38 if (isset($result['errors'][0]['message'])) {
39 39 $message = self::diffMesageForHuman($result['errors'][0]['message']);
40 40 if (stripos($result['errors'][0]['message'], "token") !== false && !$repeat) {
41 41 $result = WTSEC_LIBRARY_WT::auth(wtsec_app()->get("api_key"));
42 - if (isset($result['data']['guest']['apiKeys']['auth']['token']['value'])) {
43 - $token_ = $result['data']['guest']['apiKeys']['auth']['token']['value'];
42 + if (isset($result['data']['apiServiceMutation']['auth']['value'])) {
43 + $token_ = $result['data']['apiServiceMutation']['auth']['value'];
44 44 WTSEC_LIBRARY_App::login($token_);
45 45 return self::requestApi($payload, $token, true);
46 46 } else {
47 47 WTSEC_LIBRARY_App::logout();
@@ -95,9 +95,9 @@
95 95 $args = [
96 96 'timeout' => '15',
97 97 'sslverify' => false,
98 98 ];
99 - $response = wp_remote_get($url, $args);
99 + $response = wp_remote_post($url, $args);
100 100 $httpcode = wp_remote_retrieve_response_code($response);
101 101 if ($httpcode < 200) {
102 102 WTSEC_LIBRARY_Session::setNotification("error", WTSEC_LIBRARY_Localization::lmsg('could_not_connect_to_the_server'));
103 103 }
@@ -104,33 +104,28 @@
104 104 $response = wp_remote_retrieve_body($response);
105 105 return $response;
106 106 }
107 107
108 - public static function getOwnSite($attempt = false)
108 + public static function getOwnSite()
109 109 {
110 - $payload = '{"query":"query getSites { auth { viewer { sites { ...sites __typename } __typename } __typename }}fragment sites on SiteQueries { list(filter: {}) { edges { node { id hostname title ssl { status __typename } availability { status __typename } reputation { status __typename } ports { status __typename } deface { status __typename } domain { status __typename } antivirus { status __typename } firewall { status __typename } maliciousScript { stack { name __typename } __typename } __typename } __typename } __typename } __typename}"}';
111 -
110 + $payload = '{"query":"{\n userHostsList{\n id\n hostname\n }\n}"}';
112 111 $result = self::requestApi($payload, true);
113 - if (isset($result['data']['auth']['viewer']['sites']['list']['edges'])) {
112 + if (isset($result['data']['userHostsList'])) {
114 113 //mutator
115 - foreach ($result['data']['auth']['viewer']['sites']['list']['edges'] as &$m) {
116 - if (isset($m['node']['hostname'])) {
117 - $m['node']['hostname'] = WTSEC_LIBRARY_Idn::idn_to_utf8($m['node']['hostname']);
118 -// if ($m['node']['id'] == "c2l0ZV8yNTg=") {
119 -// return $m['node'];
120 -// }
121 - if (self::isSiteUrl($m['node']['hostname'])) {
122 - return $m['node'];
114 + foreach ($result['data']['userHostsList'] as &$m) {
115 + if (isset($m['hostname'])) {
116 + $m['hostname'] = WTSEC_LIBRARY_Idn::idn_to_utf8($m['hostname']);
117 + if (self::isSiteUrl($m['hostname'])) {
118 + return $result['data']['userHostsList'] = $m;
119 + break;
123 120 }
124 121 }
125 122 }
126 123 $add_site = self::addSite(WTSEC_SITE_URL);
127 124 if (isset($add_site['errors'])) {
128 - return $result['data']['node'] = [];
125 + return $result['data']['userHostsList'] = [];
129 126 } else {
130 - if (!$attempt) {
131 - return self::getOwnSite(true);
132 - }
127 + return self::getOwnSite();
133 128 }
134 129 }
135 130 return [];
136 131 }
@@ -141,9 +136,9 @@
141 136 }
142 137
143 138 public static function addSite($url)
144 139 {
145 - $payload = '{"variables":{"input":{"title":"' . $url . '","hostname":"' . $url . '","configs":{"scheme":"http","port":80,"wa":{},"dec":{},"ps":{}}}},"query":"mutation ($input: CreateSiteInput) {\n auth {\n sites {\n create(input: $input) {\n id\n hostname\n title\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"}';
140 + $payload = '{"query":"\n mutation($input: AddUserHostInput!) {\n addUserHost(input: $input) {\n id\n title\n hostname\n tags\n stack\n services {\n id\n name\n configs {\n id\n data\n isActive\n createdAt\n }\n }\n isActive\n createdAt\n }\n }\n ","variables":{"input":{"hostname":"' . $url . '","services":[{"id":1,"configs":[{"scheme":"http","port":80,"check_interval":1,"responsetime_threshold":30,"path":"/","http_errors":[400,401,402,403,404,500,501,502,503],"alert_after":0}]},{"id":2,"configs":[{"check_interval":5,"notify_expiry_day":true,"notify_expiry_month":true,"notify_expiry_week":true,"port":443}]},{"id":4,"configs":[{"check_interval":5,"path":"/","scheme":"http","port":80}]},{"id":5,"configs":[{"check_interval":5,"path":"/","scheme":"http","port":80}]},{"id":6,"configs":[{"check_interval":5,"path":"/","scheme":"http","port":80}]},{"id":7,"configs":[{"check_interval":5,"ports_udp":[18,19,53,27,29,31,71,74],"ports_tcp":[21,22,25,3306,5432,80,443,88,8000,8080]}]},{"id":9,"configs":[{"scheme":"http","port":80,"path":"/"}]},{"id":8,"configs":[{"check_interval":30,"scheme":"http","port":80,"path":"/"}]},{"id":3,"configs":[{"check_interval":60,"notify_expiry_day":true,"notify_expiry_month":true,"notify_expiry_week":true}]},{"id":10,"configs":[{"check_interval":30,"path":"/","scheme":"http","port":80}]}],"title":"' . $url . '"}}}';
146 141 return self::requestApi($payload, true);
147 142 }
148 143
149 144 public static function getAllChecks($host_id)
@@ -150,14 +145,10 @@
150 145 {
151 146 $from = time() - (60 * 60 * 24);
152 147 $to = time();
153 148 $from_waf = time() - (60 * 60 * 24 * 7);
154 - $payload = '{"query":"query($id: ID!, $dateRange:DateRangeInput!) {\n auth {\n viewer {\n sites {\n one(id: $id) {\n availability {\n status\n lastTest {\n time\n }\n responseTime\n downTime(dateRange: $dateRange)\n percent(dateRange: $dateRange)\n }\n deface {\n status\n lastTest {\n time\n }\n words\n count\n }\n domain {\n status\n registrar\n owner\n email\n createdDate\n expiredDate\n }\n ports {\n status\n lastTest {\n time\n }\n ip\n tcp\n country\n }\n ssl {\n status\n daysLeft\n expiryDate\n issueDate\n }\n reputation {\n status\n lastTest {\n time\n }\n virusList {\n viruses\n antiVirus\n }\n }\n firewall {\n lastTest { \n time\n } \n status\n chart(dateRange: $dateRange) {\n time\n attacks\n blocked\n }\n report(dateRange: $dateRange) {\n time\n attacks\n ip\n }\n }\n maliciousScript{\n lastTest{\n time\n }\n status\n }\n antivirus{\n status \n stats { \n changed\n deleted\n scaned\n infected\n error\n } \n lastTest { \n time\n } \n isFirstCheck\n }\n }\n }\n }\n }\n}","variables":{"id":"' . $host_id . '","dateRange":{"to":' . $to . ',"from":' . $from_waf . '}}}';
155 - $response = self::requestApi($payload, true);
156 - if (isset($response['data']['auth']['viewer']['sites']['one'])) {
157 - return $response['data']['auth']['viewer']['sites']['one'];
158 - }
159 - return [];
149 + $payload = '{"query":"query getAllChecks( $hostId:Int!, $dateRange: DateRangeInput!, $dateRangeWaf:DateRangeInput! ){\n waServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n isDown\n status\n average(dateRange: $dateRange)\n responseTime(dateRange: $dateRange)\n testsResults(dateRange: $dateRange)\n }\n sslServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n status\n issued\n expires\n daysLeft\n tls\n }\n decServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n email\n daysLeft\n created\n expires\n registrar\n owner\n status\n }\n avServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n lastTestId\n lastTestTime\n status\n count\n list\n }\n cmsServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n lastTestId\n lastTestTime\n status\n count\n list\n }\n dcServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n lastTestTime\n status\n count\n list\n }\n psServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n ip\n lastTestId\n lastTestTime\n status\n count\n openTCPs\n openUDPs\n }\n wafServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n lastTestTime\n status\n count\n countIP \n chart(dateRangeWaf:$dateRangeWaf){\n date\n count\n }\n }\n vcServiceChecks(userHostId:$hostId){\n config{\n id\n isActive\n }\n status\n list\n fileChangesCount\n errorsCount\n signaturesCount\n }\n \n}\n\n\n\n","variables":{"hostId":' . $host_id . ',"dateRange":{"from":' . $from . ',"to":' . $to . '},"dateRangeWaf":{"to":' . $to . ',"from":' . $from_waf . '}}}';
150 + return self::requestApi($payload, true);
160 151 }
161 152
162 153 public static function changeStatus($config_id, $host_id)
163 154 {
@@ -166,21 +157,21 @@
166 157 }
167 158
168 159 public static function serviceConnect($id, $service)
169 160 {
170 - $payload = '{"query":"mutation {\n auth {\n agents{\n check(siteId:\"' . $id . '\",service:' . strtolower($service) . ',plugin:WORDPRESS)\n }\n }\n}\n"}';
161 + $payload = '{"query":"{ checkAgent(userHostId: ' . $id . ', service: ' . strtoupper($service) . ') }"}';
171 162 return self::requestApi($payload, true);
172 163 }
173 164
174 165 public static function generateFile($id, $service)
175 166 {
176 - $payload = '{"query":"mutation {\n auth {\n agents{\n generate(siteId:\"' . $id . '\",service:' . strtolower($service) . '){\n agentName\n }\n }\n }\n}\n"}';
167 + $payload = '{"query":"{ generateAgent(userHostId: ' . $id . ', service: ' . strtoupper($service) . ') }"}';
177 168 return self::requestApi($payload, true);
178 169 }
179 170
180 171 public static function checkStatus($id, $service)
181 172 {
182 - $payload = '{"operationName":null,"variables":{"id":"' . $id . '"},"query":"query ($id: ID!) {\n auth {\n viewer {\n sites {\n one(id: $id) {\n ... on Site {\n configs {\n ... on ' . $service . 'Config {\n isActive\n id\n }\n }\n }\n }\n }\n }\n }\n}\n"}';
173 + $payload = '{"query":"{\n ' . strtolower($service) . 'ServiceChecks(userHostId:' . $id . '){\n status\n config{\n isActive\n id\n }\n }\n}"}';
183 174 return self::requestApi($payload, true);
184 175 }
185 176
186 177 public static function getOptions($host_id)
@@ -190,97 +181,251 @@
190 181 }
191 182
192 183 public static function getAntivirus($host_id)
193 184 {
194 - $from = time() - (60 * 60 * 24);
195 - $to = time();
196 - $from_waf = time() - (60 * 60 * 24 * 7);
197 - $payload = '{"operationName":null,"variables":{"id":"' . $host_id . '","avLogFilter":{"event":"infected","order":{"direction":"DESC","field":"time"},"pagination":{"first":10,"cursor":null},"dateRange":{"to":' . $to . ',"from":' . $from_waf . '}}},"query":"query ($id: ID!, $avLogFilter: AvLogFilter!) {\n auth {\n viewer {\n sites {\n one(id: $id) {\n id\n ... on Site {\n configs {\n ... on AvConfig {\n isActive\n id\n }\n }\n }\n antivirus {\n status\n log(avLogFilter: $avLogFilter) {\n edges {\n node {\n filePath\n matches\n event\n signatures\n time\n }\n }\n }\n lastTest {\n time\n }\n stats {\n changed\n deleted\n scaned\n infected\n }\n }\n }\n }\n }\n }\n}\n"}';
185 + $payload = '{"query":"query{\n vcServiceChecks(userHostId:' . $host_id . '){\n config{\n id,\n isActive\n }\n status\n list\n fileChangesCount\n errorsCount\n signaturesCount\n }\n}\n\n"}';
198 186 return self::requestApi($payload, true);
199 187 }
200 188
201 - public static function getStatusIcon($status)
189 + public static function getStatusIcon($status, $service)
202 190 {
203 - $statuses = [
204 - "clean" => [
205 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.ok'),
206 - "color" => self::getColor("success")
207 - ],
208 - "pending" => [
209 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.pending'),
210 - "color" => self::getColor("grey")
211 - ],
212 - "expired" => [
213 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.expired'),
214 - "color" => self::getColor("orange")
215 -
216 - ],
217 - "invalid" => [
218 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.invalid'),
219 - "color" => self::getColor("error")
220 - ],
221 - "no_cert" => [
222 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.no_cert'),
223 - "color" => self::getColor("orange")
224 - ],
225 - "error" => [
226 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.error'),
227 - "color" => self::getColor("error")
228 - ],
229 - "expires" => [
230 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.expires'),
231 - "color" => self::getColor("orange")
232 - ],
233 - "expires_today" => [
234 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.expires_today'),
235 - "color" => self::getColor("error")
236 - ],
237 - "down" => [
238 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.down'),
239 - "color" => self::getColor("error")
240 - ],
241 - "up" => [
242 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.up'),
243 - "color" => self::getColor("success")
244 - ],
245 - "infected" => [
246 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.infected'),
247 - "color" => self::getColor("error")
248 - ],
249 - "open_ports" => [
250 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.open'),
251 - "color" => self::getColor("orange")
252 - ],
253 - "deface" => [
254 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.deface'),
255 - "color" => self::getColor("error")
256 - ],
257 - "modified" => [
258 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.modified'),
259 - "color" => self::getColor("grey")
260 - ],
261 - "not_supported" => [
262 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.unsupported'),
263 - "color" => self::getColor("orange")
264 - ],
265 - "not_registered" => [
266 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.not_registered'),
267 - "color" => self::getColor("orange")
268 - ],
269 - "not_installed" => [
270 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.not_installed'),
271 - "color" => self::getColor("error")
272 - ],
273 - "working" => [
274 - "text" => WTSEC_LIBRARY_Localization::lmsg('statuses.working'),
275 - "color" => self::getColor("success")
276 - ],
277 - ];
278 - if (isset($statuses[$status])) {
279 - return ["icon" => $statuses[$status]["color"]["icon"], "color" => $statuses[$status]["color"]["color"], "text" => "<span class='" . $statuses[$status]["color"]["color"] . "'>" . $statuses[$status]["text"] . "</span>"];
280 - } else {
281 - return ["icon" => "ww-icon--status_unknow", "color" => "ww--status_unknow", "text" => "<span class='ww--status_unknow'>Unknown status</span>"];
191 + $color = '';
192 + $definition = '';
193 + switch ($service) {
194 + case 'wa':
195 + switch ((string)$status) {
196 + case '-1':
197 + $color = self::getColor("error");
198 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
199 + break;
200 + case '-200':
201 + $color = self::getColor("grey");
202 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
203 + break;
204 + case '0':
205 + $color = self::getColor("success");
206 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
207 + break;
208 + case '1':
209 + $color = self::getColor("error");
210 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.unavailable');
211 + break;
212 + }
213 + break;
214 + case 'ssl':
215 + switch ((string)$status) {
216 + case '-1':
217 + $color = self::getColor("grey");
218 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
219 + break;
220 + case '-200':
221 + $color = self::getColor("grey");
222 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
223 + break;
224 + case '0':
225 + $color = self::getColor("green");
226 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
227 + break;
228 + case '1':
229 + $color = self::getColor("red");
230 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.invalid');
231 + break;
232 + case '2':
233 + $color = self::getColor("red");
234 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expired');
235 + break;
236 + case '3':
237 + $color = self::getColor("orange");
238 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expires');
239 + break;
240 + case '4':
241 + $color = self::getColor("red");
242 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expires_today');
243 + break;
244 + }
245 + break;
246 + case 'dec':
247 + switch ((string)$status) {
248 + case '-3':
249 + $color = self::getColor("grey");
250 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.not_registered');
251 + break;
252 + case '-2':
253 + $color = self::getColor("grey");
254 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.unsupported');
255 + break;
256 + case '-1':
257 + $color = self::getColor("grey");
258 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
259 + break;
260 + case '-200':
261 + $color = self::getColor("grey");
262 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
263 + break;
264 + case '0':
265 + $color = self::getColor("green");
266 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
267 + break;
268 + case '1':
269 + $color = self::getColor("orange");
270 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expires');
271 + break;
272 + case '2':
273 + $color = self::getColor("orange");
274 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expired');
275 + break;
276 + case '3':
277 + $color = self::getColor("red");
278 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.expires_today');
279 + break;
280 + }
281 + break;
282 + case 'av':
283 + switch ((string)$status) {
284 + case '-1':
285 + $color = self::getColor("grey");
286 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
287 + break;
288 + case '-200':
289 + $color = self::getColor("grey");
290 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
291 + break;
292 + case '0':
293 + $color = self::getColor("green");
294 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
295 + break;
296 + case '1':
297 + $color = self::getColor("red");
298 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.blacklisted');
299 + break;
300 + }
301 + break;
302 + case 'cms':
303 + switch ((string)$status) {
304 + case '-1':
305 + $color = self::getColor("grey");
306 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
307 + break;
308 + case '-200':
309 + $color = self::getColor("grey");
310 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
311 + break;
312 + case '0':
313 + $color = self::getColor("green");
314 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
315 + break;
316 + case '1':
317 + $color = self::getColor("red");
318 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.miner_detected');
319 + break;
320 + }
321 + break;
322 + case 'dc':
323 + switch ((string)$status) {
324 + case '-1':
325 + $color = self::getColor("grey");
326 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
327 + break;
328 + case '-200':
329 + $color = self::getColor("grey");
330 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
331 + break;
332 + case '0':
333 + $color = self::getColor("green");
334 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
335 + break;
336 + case '1':
337 + $color = self::getColor("red");
338 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.deface');
339 + break;
340 + case '2':
341 + $color = self::getColor("orange");
342 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.modified');
343 + break;
344 + }
345 + break;
346 + case 'ps':
347 + switch ((string)$status) {
348 + case '-1':
349 + $color = self::getColor("grey");
350 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
351 + break;
352 + case '-200':
353 + $color = self::getColor("grey");
354 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
355 + break;
356 + case '0':
357 + $color = self::getColor("green");
358 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
359 + break;
360 + case '1':
361 + $color = self::getColor("orange");
362 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.open');
363 + break;
364 + }
365 + break;
366 + case 'waf':
367 + switch ((string)$status) {
368 + case '-400':
369 + $color = self::getColor("red");
370 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.blocked');
371 + break;
372 + case '-300':
373 + $color = self::getColor("orange");
374 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.not_installed');
375 + break;
376 + case '-1':
377 + $color = self::getColor("grey");
378 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
379 + break;
380 + case '-200':
381 + $color = self::getColor("grey");
382 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
383 + break;
384 + case '0':
385 + $color = self::getColor("green");
386 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
387 + break;
388 + case '1':
389 + $color = self::getColor("red");
390 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.attacks_detected');
391 + break;
392 + }
393 + break;
394 + case 'vc':
395 + switch ((string)$status) {
396 + case '-400':
397 + $color = self::getColor("red");
398 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.blocked');
399 + break;
400 + case '-300':
401 + $color = self::getColor("orange");
402 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.not_installed');
403 + break;
404 + case '-1':
405 + $color = self::getColor("grey");
406 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.error');
407 + break;
408 + case '-200':
409 + $color = self::getColor("grey");
410 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.pending');
411 + break;
412 + case '0':
413 + $color = self::getColor("green");
414 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.ok');
415 + break;
416 + case '1':
417 + $color = self::getColor("orange");
418 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.file_changes');
419 + break;
420 + case '2':
421 + $color = self::getColor("red");
422 + $definition = WTSEC_LIBRARY_Localization::lmsg('statuses.signature_found');
423 + break;
424 + }
425 + break;
282 426 }
427 + return ["icon" => $color["icon"], "color" => $color["color"], "text" => "<span class='" . $color["color"] . "'>" . $definition . "</span>"];
283 428 }
284 429
285 430 public static function getColor($type)
286 431 {
@@ -289,9 +434,8 @@
289 434 "red" => "is--status--error",
290 435 "success" => "is--status--ok",
291 436 "error" => "is--status--error",
292 437 "orange" => "is--status--warning",
293 - "warning" => "is--status--warning",
294 438 "grey" => "ww--status_unknow"
295 439 ];
296 440 $icon_types = [
297 441 "green" => "ww-icon--status_ok",
@@ -298,25 +442,10 @@
298 442 "red" => "ww-icon--status_error",
299 443 "success" => "ww-icon--status_ok",
300 444 "error" => "ww-icon--status_error",
301 445 "orange" => "ww-icon--status_warning",
302 - "warning" => "ww-icon--status_warning",
303 446 "grey" => "ww-icon--status_unknow"
304 447 ];
305 448 return ["icon" => $icon_types[$type], "color" => $types[$type]];
306 - }
307 -
308 - public static function getConfigId($configs)
309 - {
310 - $id = 0;
311 - $is_active = false;
312 - foreach ($configs as &$config) {
313 - if (!empty($config)) {
314 - $id = $config['id'];
315 - $is_active = $config['isActive'];
316 - break;
317 - }
318 - }
319 - return compact('id', 'is_active');
320 449 }
321 450
322 451 }