]> git.datanom.net - qtadmin.git/blobdiff - lib/utils.inc.php
prepare for wblistadm server
[qtadmin.git] / lib / utils.inc.php
index 5832d291f0638948b38572152e1b9659c91c30e1..e0ab45d868a7d3c7996343bd695c0c7e2f9567e1 100644 (file)
@@ -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+(?<cookie>[^=]+=[^;]+)#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;
+    }
 }
This page took 0.04807 seconds and 5 git commands to generate.