X-Git-Url: http://git.datanom.net/qtadmin.git/blobdiff_plain/cd212b173cc6e780f2c0b8be756f529e04d8731b..6e081c5f9eef8c01f290e84eadcd328234e53e7b:/lib/utils.inc.php diff --git a/lib/utils.inc.php b/lib/utils.inc.php index dc6625a..723a133 100644 --- a/lib/utils.inc.php +++ b/lib/utils.inc.php @@ -2,7 +2,7 @@ /* vim: set ts=4 tw=0 sw=4 noet: */ require_once $CFG->root .'config.php'; -class Utils { +class Utils implements Serializable { private static $_instance = null; private $server; @@ -55,10 +55,23 @@ class Utils { } $_SESSION['user'] = $this->user; $_SESSION['is_admin'] = $this->is_admin; + $_SESSION['Utils'] = serialize($this); } private function __clone() {} + public function serialize() { + file_put_contents('/tmp/dump', 'Serialize called: '.var_export($this, true), FILE_APPEND); + return serialize(get_object_vars($this)); + } + + public function unserialize($data) { + $values = unserialize($data); + foreach ($values as $key=>$value) { + $this->$key = $value; + } + } + private function startSession() { global $CFG; @@ -82,7 +95,12 @@ class Utils { global $CFG; if (!is_object(self::$_instance)) { - self::$_instance = new Utils(); + if (isset($_SESSION['Utils'])) { + self::$_instance = unserialize($_SESSION['Utils']); + file_put_contents('/tmp/dump', 'Unserialize called: '.var_export($this, true), FILE_APPEND); + } else { + self::$_instance = new Utils(); + } } $time = $_SERVER['REQUEST_TIME']; @@ -92,8 +110,9 @@ class Utils { exit; session_unset(); session_destroy(); - self::$_instance->user = null; + self::$_instance = null; self::$_instance->is_admin = false; + $_SESSION['Utils'] = serialize(self::$_instance); } else { $_SESSION['LAST_ACTIVITY'] = $time; } @@ -167,6 +186,8 @@ class Utils { $this->loginStatus = 'Connect to LDAP server failed'; } + $_SESSION['Utils'] = serialize($this); + return $result; } @@ -178,7 +199,6 @@ class Utils { global $CFG; $loggedIn = false; - echo '$this->user: '.$this->user.' $_SESSION[\'user\']: '.$_SESSION['user']; if ($this->user) { $loggedIn = true; } else if (isset($_SESSION['user'])) { @@ -194,9 +214,13 @@ class Utils { } if ($loggedIn == false) { + echo '$this->user: '.$this->user.' $_SESSION[\'user\']: '.$_SESSION['user']; echo 'R_TIME: '.date('c', $_SERVER['REQUEST_TIME']).' L_ACT: '.date('c', $_SESSION['LAST_ACTIVITY']); exit; } + + $_SESSION['Utils'] = serialize($this); + return $loggedIn; } @@ -225,6 +249,8 @@ class Utils { $this->header = str_replace('__TITLE__', $heading, $this->header); $this->header = str_replace('__ROOT__', $CFG->wwwroot, $this->header); $this->header = str_replace('__TIMEOUT__', $timeout, $this->header); + + $_SESSION['Utils'] = serialize($this); } public function convertContent($code) {