X-Git-Url: http://git.datanom.net/qtadmin.git/blobdiff_plain/56c841014682b373b486d3627ce1ea1f37403ff1..b378751c9e23854724a13e18f1e62295b0eb662b:/lib/utils.inc.php diff --git a/lib/utils.inc.php b/lib/utils.inc.php index 197b26f..f32e209 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'; } @@ -322,7 +325,8 @@ class Utils { if ($this->isAdmin() || $this->getUser() == $recipient) { $authorized = true; } - $this->log("authorize '".$this->getUser()."' rcpt '$recipient'", 3); + $msg = ($authorized) ? 'authorize' : 'not authorize'; + $this->log("$msg '".$this->getUser()."' rcpt '$recipient'", 3); return $authorized; } @@ -380,4 +384,51 @@ class Utils { return $string; } + public function RESTCall($url, $data = null, $cookiesIn = '', $headers = null) { + $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; + } + + if ($headers) { + $options[CURLOPT_HTTPHEADER] = $headers; + } + + $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; + } }