/** * Initializes the internal kajona session * @return void */ public function initInternalSession() { $arrTables = $this->objDB->getTables(); if (!in_array(_dbprefix_ . "session", $arrTables) || class_module_system_setting::getConfigValue("_guests_group_id_") === null) { return; } $this->bitLazyLoaded = true; if ($this->getSession("KAJONA_INTERNAL_SESSID") !== false) { $this->objInternalSession = class_module_system_session::getSessionById($this->getSession("KAJONA_INTERNAL_SESSID")); if ($this->objInternalSession != null && $this->objInternalSession->isSessionValid()) { $this->objInternalSession->setIntReleasetime(time() + (int) class_module_system_setting::getConfigValue("_system_release_time_")); $this->objInternalSession->setStrLasturl(getServer("QUERY_STRING")); } else { $this->objInternalSession = null; } if ($this->objInternalSession != null) { return; } } //try to load the matching groups $strGroups = class_module_system_setting::getConfigValue("_guests_group_id_"); if (validateSystemid($this->getUserID())) { $this->objUser = new class_module_user_user($this->getUserID()); $strGroups = implode(",", $this->objUser->getArrGroupIds()); } $objSession = new class_module_system_session(); $objSession->setStrPHPSessionId($this->getSessionId()); $objSession->setStrUserid($this->getUserID()); $objSession->setStrGroupids($strGroups); $objSession->setIntReleasetime(time() + (int) class_module_system_setting::getConfigValue("_system_release_time_")); $objSession->setStrLasturl(getServer("QUERY_STRING")); $objSession->setSystemid(generateSystemid()); //this update is removed. the internal session validates on destruct, if an update or an insert is required //$objSession->updateObjectToDb(); $this->setSession("KAJONA_INTERNAL_SESSID", $objSession->getSystemid()); $this->objInternalSession = $objSession; }
/** * Returns, if available, the internal session-object for the passed internal session-id * * @param string $strSessionid * * @return class_module_system_session */ public static function getSessionById($strSessionid) { $objSession = new class_module_system_session($strSessionid); if ($objSession->isSessionValid()) { return $objSession; } else { return null; } }