X-Git-Url: http://git.datanom.net/qtadmin.git/blobdiff_plain/9d35b77325b30611cc1fc29fadd177dca7f56acc..5ec97892b8d65ffdff8eef18495632e1c2c7c22e:/lib/utils.inc.php diff --git a/lib/utils.inc.php b/lib/utils.inc.php index 5832d29..e0ab45d 100644 --- a/lib/utils.inc.php +++ b/lib/utils.inc.php @@ -236,6 +236,9 @@ class Utils { $admin = strtoupper($admin); } $this->settings['admin'] = ($admin == 'YES') ? true : false; + + // Log in to wblistadm server and get CSRFPreventionToken + $url = $CFG->wblistadm_host . ':' . $CFG->wblistadm_port . '/ticket'; } else { $this->settings['loginStatus'] = 'Login failed'; } @@ -381,4 +384,47 @@ class Utils { return $string; } + public function RESTCall($url, $data = null, $cookiesIn = '') { + $options = array( + CURLOPT_RETURNTRANSFER => true, // return web page + CURLOPT_HEADER => true, //return headers in addition to content + CURLOPT_FOLLOWLOCATION => true, // follow redirects + CURLOPT_ENCODING => "", // handle all encodings + CURLOPT_AUTOREFERER => true, // set referer on redirect + CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect + CURLOPT_TIMEOUT => 120, // timeout on response + CURLOPT_MAXREDIRS => 10, // stop after 10 redirects + CURLINFO_HEADER_OUT => true, + CURLOPT_SSL_VERIFYPEER => false, // Disabled SSL Cert checks + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_COOKIE => $cookiesIn + ); + + if ($data) { + $options[CURLOPT_POST] = 1; + $options[CURLOPT_POSTFIELDS] = $data; + } + + $ch = curl_init($url); + curl_setopt_array($ch, $options); + $rough_content = curl_exec($ch); + $err = curl_errno($ch); + $errmsg = curl_error($ch); + $header = curl_getinfo($ch); + curl_close($ch); + + $header_content = substr($rough_content, 0, $header['header_size']); + $body_content = trim(str_replace($header_content, '', $rough_content)); + $pattern = "#Set-Cookie:\\s+(?[^=]+=[^;]+)#m"; + preg_match_all($pattern, $header_content, $matches); + $cookiesOut = implode("; ", $matches['cookie']); + + $header['errno'] = $err; + $header['errmsg'] = $errmsg; + $header['headers'] = $header_content; + $header['content'] = $body_content; + $header['cookies'] = $cookiesOut; + + return $header; + } }