1 | <?php |
||||||
2 | /** |
||||||
3 | * Fantastico |
||||||
4 | * Fantastico Class for interfacing with there API. Their API is pretty simple, so this |
||||||
5 | * might not be needed, it just simplifies things a little more. |
||||||
6 | * |
||||||
7 | * @package MyAdmin |
||||||
8 | * @author Joe Huss <[email protected]> |
||||||
9 | * @copyright 2019 |
||||||
10 | * @version $Id$ |
||||||
11 | * @access public |
||||||
12 | */ |
||||||
13 | |||||||
14 | namespace Detain\Fantastico; |
||||||
15 | |||||||
16 | require_once __DIR__.'/../../../workerman/statistics/Applications/Statistics/Clients/StatisticClient.php'; |
||||||
17 | |||||||
18 | /** |
||||||
19 | * Class Fantastico |
||||||
20 | * |
||||||
21 | * @package Detain\Fantastico |
||||||
22 | */ |
||||||
23 | class Fantastico |
||||||
24 | { |
||||||
25 | |||||||
26 | /** |
||||||
27 | * All fantastico license types |
||||||
28 | */ |
||||||
29 | const ALL_TYPES = 0; |
||||||
30 | |||||||
31 | /** |
||||||
32 | * Normal/Server license types |
||||||
33 | */ |
||||||
34 | const NORMAL_TYPES = 1; |
||||||
35 | |||||||
36 | /** |
||||||
37 | * VPS license types |
||||||
38 | */ |
||||||
39 | const VPS_TYPES = 2; |
||||||
40 | |||||||
41 | /** |
||||||
42 | * the WSDL API file |
||||||
43 | */ |
||||||
44 | public $wsdl = 'https://netenberg.com/api/netenberg.wsdl'; |
||||||
45 | |||||||
46 | public $connected = false; |
||||||
47 | |||||||
48 | /** |
||||||
49 | * the username to use for API access |
||||||
50 | */ |
||||||
51 | private $apiUsername; |
||||||
52 | |||||||
53 | /** |
||||||
54 | * the password to use for api access |
||||||
55 | */ |
||||||
56 | private $apiPassword; |
||||||
57 | |||||||
58 | /** |
||||||
59 | * this will hold the soap client, which hopefully we can reuse for multiple queries if need be |
||||||
60 | */ |
||||||
61 | private $soapClient; |
||||||
62 | |||||||
63 | /** |
||||||
64 | * this will hold responses from the API for future caching use |
||||||
65 | */ |
||||||
66 | private $cache; |
||||||
67 | |||||||
68 | |||||||
69 | |||||||
70 | /** |
||||||
71 | * this holds an array of possible license types you can use and there descriptions |
||||||
72 | * note the ALL_TYPES is only for listing, you cant buy one thats all_types |
||||||
73 | */ |
||||||
74 | public $types = [ |
||||||
75 | self::ALL_TYPES => 'All IPs', |
||||||
76 | self::NORMAL_TYPES => 'Normal Licenses', |
||||||
77 | self::VPS_TYPES => 'VPS Licenses' |
||||||
78 | ]; |
||||||
79 | |||||||
80 | /** |
||||||
81 | * Starts an instance of the fantastico license API. |
||||||
82 | * |
||||||
83 | * @param string $username username to connect to fantastico api with |
||||||
84 | * @param string $password password to connect to fantastico api with |
||||||
85 | */ |
||||||
86 | public function __construct($username, $password) |
||||||
87 | { |
||||||
88 | $this->cache = []; |
||||||
89 | $this->soapClient = null; |
||||||
90 | $this->apiUsername = $username; |
||||||
91 | $this->apiPassword = $password; |
||||||
92 | } |
||||||
93 | |||||||
94 | /** |
||||||
95 | 1 | * Fantastico::connect() |
|||||
96 | 1 | * function called automatically to ensure that we're connected to the API |
|||||
97 | 1 | * |
|||||
98 | 1 | * @return void |
|||||
99 | 1 | */ |
|||||
100 | 1 | public function connect() |
|||||
101 | { |
||||||
102 | 1 | $nusoap = false; |
|||||
103 | if (null === $this->soapClient) { |
||||||
104 | ini_set('soap.wsdl_cache_enabled', '0'); |
||||||
105 | ini_set('max_execution_time', 1000); |
||||||
106 | ini_set('default_socket_timeout', 1000); |
||||||
107 | 1 | try { |
|||||
108 | $this->soapClient = new \SoapClient($this->wsdl, ['soap_version' => SOAP_1_1, 'connection_timeout' => 1000, 'trace' => 1, 'exception' => 1]); |
||||||
109 | } catch (\Exception $e) { |
||||||
110 | $nusoap = true; |
||||||
111 | } |
||||||
112 | 1 | } |
|||||
113 | if (true === $nusoap) { |
||||||
114 | require_once INCLUDE_ROOT.'/../vendor/detain/nusoap/lib/nusoap.php'; |
||||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||||
115 | $this->soapClient = new \nusoap_client($this->wsdl); |
||||||
0 ignored issues
–
show
The type
nusoap_client was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||||
116 | $this->connected = true; |
||||||
117 | } |
||||||
118 | } |
||||||
119 | |||||||
120 | /** |
||||||
121 | * Fantastico::getIpTypes() |
||||||
122 | 1 | * returns an array of the possible license types in the format of |
|||||
123 | 1 | * ID => Description |
|||||
124 | * where ID is the Type ID you need to pass to various functions asking for a license type |
||||||
125 | * |
||||||
126 | * @return array returns an array of possible license types and descriptions of them |
||||||
127 | */ |
||||||
128 | public function getIpTypes() |
||||||
129 | { |
||||||
130 | return $this->types; |
||||||
131 | } |
||||||
132 | |||||||
133 | /** |
||||||
134 | * Fantastico::isType() |
||||||
135 | * a check to make sure the passed type is valid |
||||||
136 | * |
||||||
137 | * @param mixed the license type your trying to validate |
||||||
0 ignored issues
–
show
The type
Detain\Fantastico\the was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||||
138 | * @param integer $type |
||||||
139 | * @return bool whether or not its a valid fantastico license type |
||||||
140 | */ |
||||||
141 | public function isType($type) |
||||||
142 | { |
||||||
143 | return array_key_exists($type, $this->types); |
||||||
144 | } |
||||||
145 | |||||||
146 | /** |
||||||
147 | * Fantastico::getHash() |
||||||
148 | * returns the login hash |
||||||
149 | * |
||||||
150 | * @return string the login hash |
||||||
151 | */ |
||||||
152 | private function getHash() |
||||||
153 | { |
||||||
154 | return md5($this->apiUsername.$this->apiPassword); |
||||||
155 | } |
||||||
156 | |||||||
157 | /** |
||||||
158 | * Fantastico::getIpList() |
||||||
159 | * returns a list of all license types. |
||||||
160 | * |
||||||
161 | * Sample Return Output |
||||||
162 | * Array |
||||||
163 | * ( |
||||||
164 | * [0] => 130.253.175.32 |
||||||
165 | * [1] => 140.99.16.206 |
||||||
166 | * [2] => 150.101.195.140 |
||||||
167 | * ) |
||||||
168 | * |
||||||
169 | * @param integer $type one of the possible fantastico license types, defaults to {@link self::ALL_TYPES} |
||||||
170 | * @return FALSE|array returns FALSE on error or an array of license details |
||||||
171 | */ |
||||||
172 | public function getIpList($type = self::ALL_TYPES) |
||||||
173 | { |
||||||
174 | if (isset($this->cache['getIpList_'.$type])) { |
||||||
175 | return $this->cache['getIpList_'.$type]; |
||||||
176 | } |
||||||
177 | if (!$this->isType($type)) { |
||||||
178 | return false; |
||||||
179 | } |
||||||
180 | $this->connect(); |
||||||
181 | \StatisticClient::tick('Fantastico', 'getIpList'); |
||||||
0 ignored issues
–
show
The type
StatisticClient was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||||||
182 | $this->cache['getIpList_'.$type] = json_decode($this->soapClient->getIpList($this->getHash(), $type), true); |
||||||
183 | if ($this->cache['getIpList_'.$type] === false) { |
||||||
184 | \StatisticClient::report('Fantastico', 'getIpList', false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
185 | } else { |
||||||
186 | \StatisticClient::report('Fantastico', 'getIpList', true, 0, '', STATISTICS_SERVER); |
||||||
187 | } |
||||||
188 | myadmin_log('fantastico', 'debug', json_encode($this->cache['getIpList_'.$type]), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
189 | return $this->cache['getIpList_'.$type]; |
||||||
190 | } |
||||||
191 | |||||||
192 | /** |
||||||
193 | * Fantastico::getIpListDetailed() |
||||||
194 | * returns a list of all license types and details about each one |
||||||
195 | * |
||||||
196 | * Sample Return Output |
||||||
197 | * |
||||||
198 | * |
||||||
199 | * Array |
||||||
200 | * ( |
||||||
201 | * [0] => { |
||||||
202 | * Array |
||||||
203 | * ( |
||||||
204 | * [ipAddress] => 130.253.175.32 |
||||||
205 | * [addedOn] => 2010-03-01 00:00:00 |
||||||
206 | * [isVPS] => ( Yes || No ) |
||||||
207 | * [status] => ( Active || Inactive ) |
||||||
208 | * ) |
||||||
209 | * } |
||||||
210 | * [1] => { |
||||||
211 | * Array |
||||||
212 | * ( |
||||||
213 | * [ipAddress] => 131.253.175.32 |
||||||
214 | * [addedOn] => 2011-03-01 00:00:00 |
||||||
215 | * [isVPS] => ( Yes || No ) |
||||||
216 | * [status] => ( Active || Inactive ) |
||||||
217 | * ) |
||||||
218 | * } |
||||||
219 | * [2] => { |
||||||
220 | * Array |
||||||
221 | * ( |
||||||
222 | * [ipAddress] => 132.253.175.32 |
||||||
223 | * [addedOn] => 2012-03-01 00:00:00 |
||||||
224 | * [isVPS] => ( Yes || No ) |
||||||
225 | * [status] => ( Active || Inactive ) |
||||||
226 | * ) |
||||||
227 | * } |
||||||
228 | * ) |
||||||
229 | * |
||||||
230 | * @param integer $type one of the possible fantastico license types, defaults to {@link self::ALL_TYPES} |
||||||
231 | * @return FALSE|array returns FALSE on error or an array of license details |
||||||
232 | */ |
||||||
233 | public function getIpListDetailed($type = self::ALL_TYPES) |
||||||
234 | { |
||||||
235 | if (!$this->isType($type)) { |
||||||
236 | return false; |
||||||
237 | } |
||||||
238 | if (isset($this->cache['getIpListDetailed_'.$type])) { |
||||||
239 | return $this->cache['getIpListDetailed_'.$type]; |
||||||
240 | } |
||||||
241 | $this->connect(); |
||||||
242 | //try { |
||||||
243 | \StatisticClient::tick('Fantastico', 'getIpListDetailed'); |
||||||
244 | $response = json_decode($this->soapClient->__soapCall('getIpListDetailed', [$this->getHash(), $type]), true); |
||||||
245 | if ($response === false) { |
||||||
246 | \StatisticClient::report('Fantastico', 'getIpListDetailed', false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
247 | } else { |
||||||
248 | \StatisticClient::report('Fantastico', 'getIpListDetailed', true, 0, '', STATISTICS_SERVER); |
||||||
249 | } |
||||||
250 | myadmin_log('fantastico', 'debug', json_encode($response), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
251 | //echo '<pre>';echo print_r($response, TRUE);echo '</pre>'; |
||||||
252 | //$this->cache['getIpListDetailed_'.$type] = $this->cache['getIpListDetailed_'.$type]->Licenses; |
||||||
253 | $this->cache['getIpListDetailed_'.$type] = []; |
||||||
254 | $this->cache['getIpList_'.$type] = []; |
||||||
255 | $responseValues = array_values($response['Licenses']); |
||||||
256 | foreach ($responseValues as $data) { |
||||||
257 | $tdata = [ |
||||||
258 | 'ipAddress' => $data[0], |
||||||
259 | 'addedOn' => $data[1], |
||||||
260 | 'isVPS' => $data[2], |
||||||
261 | 'status' => $data[3] |
||||||
262 | ]; |
||||||
263 | $this->cache['getIpListDetailed_'.$type][] = $tdata; |
||||||
264 | $this->cache['getIpList_'.$type][] = $tdata['ipAddress']; |
||||||
265 | $this->cache['getIpDetails_'.$tdata['ipAddress']] = $tdata; |
||||||
266 | } |
||||||
267 | //} catch (SoapFault $fault) { |
||||||
268 | //var_dump($fault); |
||||||
269 | //var_dump($this->soapClient->__getLastRequest()); |
||||||
270 | //var_dump($this->soapClient->__getLastResponse()); |
||||||
271 | //} |
||||||
272 | |||||||
273 | //foreach ($this->cache['getIpListDetailed_'.$type] as $idx => $data) |
||||||
274 | //{ |
||||||
275 | //$this->cache['getIpList_'.$type][] = $data['ipAddress']; |
||||||
276 | //$this->cache['getIpDetails_'.$data['ipAddress']] = $data; |
||||||
277 | //} |
||||||
278 | //echo '<pre>';print_r($this->cache);echo '</pre>'; |
||||||
279 | return $this->cache['getIpListDetailed_'.$type]; |
||||||
280 | } |
||||||
281 | |||||||
282 | /** |
||||||
283 | * Fantastico::validIp() |
||||||
284 | * validates the IP address |
||||||
285 | * |
||||||
286 | * @param string $ipAddress IP Address to validate |
||||||
287 | * @return bool whether or not the ip was validated |
||||||
288 | */ |
||||||
289 | public function validIp($ipAddress) |
||||||
290 | { |
||||||
291 | return ip2long($ipAddress) !== false; |
||||||
292 | } |
||||||
293 | |||||||
294 | /** |
||||||
295 | * Fantastico::getIpDetails() |
||||||
296 | * get details about a license |
||||||
297 | * |
||||||
298 | * Output Success |
||||||
299 | * Array |
||||||
300 | * ( |
||||||
301 | * [ipAddress] => 130.253.175.32 |
||||||
302 | * [addedOn] => 2010-03-01 00:00:00 |
||||||
303 | * [isVPS] => ( Yes || No ) |
||||||
304 | * [status] => ( Active || Inactive ) |
||||||
305 | * ) |
||||||
306 | * |
||||||
307 | * |
||||||
308 | * Output Error |
||||||
309 | * |
||||||
310 | * Array |
||||||
311 | * ( |
||||||
312 | * [faultcode] => 1801 |
||||||
313 | * [fault ]=> "The IP Address that you have specified does not exist." |
||||||
314 | * ) |
||||||
315 | * |
||||||
316 | * @param string $ipAddress ip address to get details for |
||||||
317 | * @return mixed returns FALSE on invalid IP, or an array of the details. |
||||||
318 | */ |
||||||
319 | public function getIpDetails($ipAddress) |
||||||
320 | { |
||||||
321 | if (!$this->validIp($ipAddress)) { |
||||||
322 | return ['faultcode' => 1, 'fault ' => 'Invalid IP Address '.$ipAddress]; |
||||||
323 | } |
||||||
324 | if (isset($this->cache['getIpDetails_'.$ipAddress])) { |
||||||
325 | return $this->cache['getIpDetails_'.$ipAddress]; |
||||||
326 | } |
||||||
327 | $this->connect(); |
||||||
328 | \StatisticClient::tick('Fantastico', 'getIpDetails'); |
||||||
329 | $this->cache['getIpDetails_'.$ipAddress] = json_decode($this->soapClient->getIpDetails($this->getHash(), $ipAddress), true); |
||||||
330 | if ($this->cache['getIpDetails_'.$ipAddress] === false) { |
||||||
331 | \StatisticClient::report('Fantastico', 'getIpDetails', false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
332 | } else { |
||||||
333 | \StatisticClient::report('Fantastico', 'getIpDetails', true, 0, '', STATISTICS_SERVER); |
||||||
334 | } |
||||||
335 | myadmin_log('fantastico', 'debug', json_encode($this->cache['getIpDetails_'.$ipAddress]), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
336 | return $this->cache['getIpDetails_'.$ipAddress]; |
||||||
337 | } |
||||||
338 | |||||||
339 | /** |
||||||
340 | * Fantastico::editIp() |
||||||
341 | * changes the IP address of a license |
||||||
342 | * |
||||||
343 | * |
||||||
344 | * Output Success |
||||||
345 | * |
||||||
346 | * Array |
||||||
347 | * ( |
||||||
348 | * ["ip"]=>"130.253.175.32" |
||||||
349 | * ["new_ip"]=>"130.253.175.33" |
||||||
350 | * |
||||||
351 | * ) |
||||||
352 | * |
||||||
353 | * |
||||||
354 | * Output Error |
||||||
355 | * |
||||||
356 | * Array |
||||||
357 | * ( |
||||||
358 | * [faultcode] => 1704 |
||||||
359 | * [fault ]=> "The new IP Address that you have specified is not a valid cPanel IP Address." |
||||||
360 | * ) |
||||||
361 | * |
||||||
362 | * Array |
||||||
363 | * ( |
||||||
364 | * [faultcode] => 1705 |
||||||
365 | * [fault ]=> "The new IP Address that you have specified is not a valid cPanel IP Address." |
||||||
366 | * ) |
||||||
367 | * |
||||||
368 | * Array |
||||||
369 | * ( |
||||||
370 | * [faultcode] => 1703 |
||||||
371 | * [fault ]=> "The IP Address that you have specified is not a valid VPS IP Address." |
||||||
372 | * ) |
||||||
373 | * |
||||||
374 | * Array |
||||||
375 | * ( |
||||||
376 | * [faultcode] => 1804 |
||||||
377 | * [fault ]=> "The IP Address that you have specified already exists." |
||||||
378 | * ) |
||||||
379 | * |
||||||
380 | * Array |
||||||
381 | * ( |
||||||
382 | * [faultcode] => 1801 |
||||||
383 | * [fault ]=> "The IP Address that you have specified does not exist." |
||||||
384 | * ) |
||||||
385 | * |
||||||
386 | * |
||||||
387 | * |
||||||
388 | * Array |
||||||
389 | * ( |
||||||
390 | * [faultcode] => 1401 |
||||||
391 | * [fault ]=> "You are trying to access the API from a server whose IP Address is not authorized." |
||||||
392 | * ) |
||||||
393 | * |
||||||
394 | * Array |
||||||
395 | * ( |
||||||
396 | * [faultcode] => 1302 |
||||||
397 | * [fault ]=> "You have specified an invalid hash." |
||||||
398 | * ) |
||||||
399 | * |
||||||
400 | * |
||||||
401 | * @param mixed $ipAddress old ip address currently licensed |
||||||
402 | * @param mixed $newip new ip address to change i tot |
||||||
403 | * @return array returns an array of ip and newip or a fault and faultcode |
||||||
404 | */ |
||||||
405 | public function editIp($ipAddress, $newip) |
||||||
406 | { |
||||||
407 | if (!$this->validIp($ipAddress)) { |
||||||
408 | $response = ['faultcode' => 1, 'fault' => 'Invalid IP Address '.$ipAddress]; |
||||||
409 | } elseif (!$this->validIp($newip)) { |
||||||
410 | $response = ['faultcode' => 2, 'fault' => 'Invalid IP Address '.$newip]; |
||||||
411 | } else { |
||||||
412 | $this->connect(); |
||||||
413 | \StatisticClient::tick('Fantastico', 'editIp'); |
||||||
414 | $response = json_decode($this->soapClient->editIp($this->getHash(), $ipAddress, $newip), true); |
||||||
415 | if ($response === false) { |
||||||
416 | \StatisticClient::report('Fantastico', 'editIp', false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
417 | } else { |
||||||
418 | \StatisticClient::report('Fantastico', 'editIp', true, 0, '', STATISTICS_SERVER); |
||||||
419 | } |
||||||
420 | myadmin_log('fantastico', 'debug', json_encode($response), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
421 | if (isset($response['fault '])) { |
||||||
422 | $response['fault'] = $response['fault ']; |
||||||
423 | unset($response['fault ']); |
||||||
424 | } |
||||||
425 | } |
||||||
426 | $this->cache = []; |
||||||
427 | return $response; |
||||||
428 | } |
||||||
429 | |||||||
430 | /** |
||||||
431 | * Fantastico::addIp() |
||||||
432 | * adds a new license into the system |
||||||
433 | * |
||||||
434 | * Output Success |
||||||
435 | * |
||||||
436 | * Array |
||||||
437 | * ( |
||||||
438 | * ["ip"]=>"130.253.175.32" |
||||||
439 | * ["id"]=>"112461" * |
||||||
440 | * ) |
||||||
441 | * |
||||||
442 | * |
||||||
443 | * Output Error |
||||||
444 | * |
||||||
445 | * Array |
||||||
446 | * ( |
||||||
447 | * [faultcode] => 1704 |
||||||
448 | * [fault ]=> "The new IP Address that you have specified is not a valid cPanel IP Address." |
||||||
449 | * ) |
||||||
450 | * |
||||||
451 | * Array |
||||||
452 | * ( |
||||||
453 | * [faultcode] => 1705 |
||||||
454 | * [fault ]=> "The new IP Address that you have specified is not a valid cPanel IP Address." |
||||||
455 | * ) |
||||||
456 | * |
||||||
457 | * Array |
||||||
458 | * ( |
||||||
459 | * [faultcode] => 1703 |
||||||
460 | * [fault ]=> "The IP Address that you have specified is not a valid VPS IP Address." |
||||||
461 | * ) |
||||||
462 | * |
||||||
463 | * Array |
||||||
464 | * ( |
||||||
465 | * [faultcode] => 1804 |
||||||
466 | * [fault ]=> "The IP Address that you have specified already exists." |
||||||
467 | * ) |
||||||
468 | * |
||||||
469 | * Array |
||||||
470 | * ( |
||||||
471 | * [faultcode] => 1603 |
||||||
472 | * [fault ]=> "You are not allowed to add any more IP Addresses because you have reached your IP Address quota." |
||||||
473 | * ) |
||||||
474 | * |
||||||
475 | * Array |
||||||
476 | * ( |
||||||
477 | * [faultcode] => 1401 |
||||||
478 | * [fault ]=> "You are trying to access the API from a server whose IP Address is not authorized." |
||||||
479 | * ) |
||||||
480 | * |
||||||
481 | * Array |
||||||
482 | * ( |
||||||
483 | * [faultcode] => 1302 |
||||||
484 | * [fault ]=> "You have specified an invalid hash." |
||||||
485 | * ) |
||||||
486 | * |
||||||
487 | * |
||||||
488 | * @param string $ipAddress ip address |
||||||
489 | * @param integer $type license type |
||||||
490 | * @return array response array containing a faultcode and fault, or ip and id on success |
||||||
491 | */ |
||||||
492 | public function addIp($ipAddress, $type) |
||||||
493 | { |
||||||
494 | if (!$this->validIp($ipAddress)) { |
||||||
495 | $response = ['faultcode' => 1, 'fault' => 'Invalid IP Address '.$ipAddress]; |
||||||
496 | } else { |
||||||
497 | $this->connect(); |
||||||
498 | \StatisticClient::tick('Fantastico', 'addIp'); |
||||||
499 | $response = json_decode($this->soapClient->addIp($this->getHash(), $ipAddress, $type), true); |
||||||
500 | if ($response === false) { |
||||||
501 | \StatisticClient::report('Fantastico', 'addIp', false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
502 | } else { |
||||||
503 | \StatisticClient::report('Fantastico', 'addIp', true, 0, '', STATISTICS_SERVER); |
||||||
504 | } |
||||||
505 | myadmin_log('fantastico', 'debug', json_encode($response), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
506 | if (isset($response['fault '])) { |
||||||
507 | $response['fault'] = $response['fault ']; |
||||||
508 | unset($response['fault ']); |
||||||
509 | } |
||||||
510 | } |
||||||
511 | $this->cache = []; |
||||||
512 | return $response; |
||||||
513 | } |
||||||
514 | |||||||
515 | /** |
||||||
516 | * @param $function |
||||||
517 | * @param $ipAddress |
||||||
518 | * @return array|mixed |
||||||
519 | */ |
||||||
520 | private function soapIpFunction($function, $ipAddress) |
||||||
521 | { |
||||||
522 | if (!$this->validIp($ipAddress)) { |
||||||
523 | return ['faultcode' => 1, 'fault ' => 'Invalid IP Address '.$ipAddress]; |
||||||
524 | } |
||||||
525 | $this->connect(); |
||||||
526 | \StatisticClient::tick('Fantastico', $function); |
||||||
527 | $response = json_decode($this->soapClient->$function($this->getHash(), $ipAddress), true); |
||||||
528 | if ($response === false) { |
||||||
529 | \StatisticClient::report('Fantastico', $function, false, 1, 'Soap Client Error', STATISTICS_SERVER); |
||||||
0 ignored issues
–
show
|
|||||||
530 | } else { |
||||||
531 | \StatisticClient::report('Fantastico', $function, true, 0, '', STATISTICS_SERVER); |
||||||
532 | } |
||||||
533 | myadmin_log('fantastico', 'debug', json_encode($response), __LINE__, __FILE__); |
||||||
0 ignored issues
–
show
The function
myadmin_log was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||||
534 | $this->cache = []; |
||||||
535 | return $response; |
||||||
536 | } |
||||||
537 | |||||||
538 | /** |
||||||
539 | * deactivateIp() |
||||||
540 | * Deactivates a Fantastico IP License |
||||||
541 | * Output Success |
||||||
542 | * Array |
||||||
543 | * ( |
||||||
544 | * [ipAddress] => 130.253.175.32 |
||||||
545 | * [addedOn] => 2010-03-01 00:00:00 |
||||||
546 | * [isVPS] => ( Yes || No ) |
||||||
547 | * [status] => ( Active || Inactive ) |
||||||
548 | * ) |
||||||
549 | * |
||||||
550 | * Output Error |
||||||
551 | * Array |
||||||
552 | * ( |
||||||
553 | * [faultcode] => 1801 |
||||||
554 | * [fault ]=> "The IP Address that you have specified does not exist." |
||||||
555 | * ) |
||||||
556 | * |
||||||
557 | * @param mixed $ipAddress |
||||||
558 | * @return void |
||||||
559 | */ |
||||||
560 | public function deactivateIp($ipAddress) |
||||||
561 | { |
||||||
562 | return $this->soapIpFunction('deactivateIp', $ipAddress); |
||||||
563 | } |
||||||
564 | |||||||
565 | /** |
||||||
566 | * reactivateIp() |
||||||
567 | * Deactivates a Fantastico IP License |
||||||
568 | * Output Success |
||||||
569 | * Array |
||||||
570 | * ( |
||||||
571 | * [ipAddress] => 130.253.175.32 |
||||||
572 | * [addedOn] => 2010-03-01 00:00:00 |
||||||
573 | * [isVPS] => ( Yes || No ) |
||||||
574 | * [status] => ( Active || Inactive ) |
||||||
575 | * ) |
||||||
576 | * |
||||||
577 | * Output Error |
||||||
578 | * Array |
||||||
579 | * ( |
||||||
580 | * [faultcode] => 1801 |
||||||
581 | * [fault ]=> "The IP Address that you have specified does not exist." |
||||||
582 | * ) |
||||||
583 | * |
||||||
584 | * @param mixed $ipAddress |
||||||
585 | * @return void |
||||||
586 | */ |
||||||
587 | public function reactivateIp($ipAddress) |
||||||
588 | { |
||||||
589 | return $this->soapIpFunction('reactivateIp', $ipAddress); |
||||||
590 | } |
||||||
591 | |||||||
592 | /** |
||||||
593 | * deleteIp() |
||||||
594 | * Deletes a Fantastico IP License |
||||||
595 | * |
||||||
596 | * Output Success |
||||||
597 | * |
||||||
598 | * Array |
||||||
599 | * ( |
||||||
600 | * [ip] => 130.253.175.32 |
||||||
601 | * [deleted] => "Yes" |
||||||
602 | * ) |
||||||
603 | * |
||||||
604 | * Output Error |
||||||
605 | * |
||||||
606 | * Array |
||||||
607 | * ( |
||||||
608 | * [faultcode] => 1801 |
||||||
609 | * [fault ]=> "The IP Address that you have specified does not exist." |
||||||
610 | * ) |
||||||
611 | * |
||||||
612 | * @param mixed $ipAddress |
||||||
613 | * @return void |
||||||
614 | */ |
||||||
615 | public function deleteIp($ipAddress) |
||||||
616 | { |
||||||
617 | return $this->soapIpFunction('deleteIp', $ipAddress); |
||||||
618 | } |
||||||
619 | } |
||||||
620 |