Example #1
0
 /**
  * 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;
     }
 }