X-Git-Url: http://git.datanom.net/qtadmin.git/blobdiff_plain/7ef22e2126b630156852e59acdb9d54283ab3462..5ec97892b8d65ffdff8eef18495632e1c2c7c22e:/lib/utils.inc.php?ds=sidebyside diff --git a/lib/utils.inc.php b/lib/utils.inc.php index 7ad8969..e0ab45d 100644 --- a/lib/utils.inc.php +++ b/lib/utils.inc.php @@ -1,5 +1,5 @@ root .'config.php'; require_once $CFG->root . 'lib/session_handler.inc.php'; @@ -22,9 +22,10 @@ class Utils { __TITLE__ -'; - private $footer = ''; +
'; + private $footer = '
'; private $heading = '

Session timeout:

__TITLE__

'; @@ -235,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'; } @@ -313,6 +317,20 @@ class Utils { return $user; } + public function authorized($recipient) { + $authorized = false; + + $this->log("authorized '$recipient'", 3); + + if ($this->isAdmin() || $this->getUser() == $recipient) { + $authorized = true; + } + $msg = ($authorized) ? 'authorize' : 'not authorize'; + $this->log("$msg '".$this->getUser()."' rcpt '$recipient'", 3); + + return $authorized; + } + public function getHeader() { $this->log("getHeader", 4); @@ -366,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; + } }