예제 #1
0
 /**
  * Initializes the session. If running, through Symfony the session
  * parameters from Symfony override the session parameter from eZ Publish.
  */
 protected function sessionInit()
 {
     if (!isset($this->settings['session']) || !$this->settings['session']['configured']) {
         // running without Symfony2 or session is not configured
         // we keep the historic behaviour
         $ini = eZINI::instance();
         if ($ini->variable('Session', 'ForceStart') === 'enabled') {
             eZSession::start();
         } else {
             eZSession::lazyStart();
         }
     } else {
         $sfHandler = new ezpSessionHandlerSymfony($this->settings['session']['has_previous'] || $this->settings['session']['started']);
         $sfHandler->setStorage($this->settings['session']['storage']);
         eZSession::init($this->settings['session']['name'], $this->settings['session']['started'], $this->settings['session']['namespace'], $sfHandler);
     }
     // let session specify if db is required
     $this->siteBasics['db-required'] = eZSession::getHandlerInstance()->dbRequired();
 }
예제 #2
0
파일: index.php 프로젝트: legende91/ez
        }
        // Fill in hooks
        eZSession::addCallback('destroy_pre', 'eZSessionBasketDestroy');
        eZSession::addCallback('gc_pre', 'eZSessionBasketGarbageCollector');
        eZSession::addCallback('cleanup_pre', 'eZSessionBasketCleanup');
    }
    // addCallBack to update session id for shop basket on session regenerate
    function eZSessionBasketRegenerate($db, $escNewKey, $escOldKey, $escUserID)
    {
        $db->query("UPDATE ezbasket SET session_id='{$escNewKey}' WHERE session_id='{$escOldKey}'");
    }
    eZSession::addCallback('regenerate_post', 'eZSessionBasketRegenerate');
    if ($ini->variable('Session', 'ForceStart') === 'enabled') {
        eZSession::start();
    } else {
        eZSession::lazyStart();
    }
    // let session specify if db is required
    $dbRequired = eZSession::getHandlerInstance()->dbRequired();
}
// if $dbRequired, open a db connection and check that db is connected
if ($dbRequired && !eZDB::instance()->isConnected()) {
    $warningList[] = array('error' => array('type' => 'kernel', 'number' => eZError::KERNEL_NO_DB_CONNECTION), 'text' => 'No database connection could be made, the system might not behave properly.');
}
// eZCheckUser: pre check, RequireUserLogin & FORCE_LOGIN related so needs to be after session init
if (!isset($check)) {
    $check = eZUserLoginHandler::preCheck($siteBasics, $uri);
}
/**
 * Check for activating Debug by user ID (Final checking. The first was in eZDebug::updateSettings())
 * @uses eZUser::instance() So needs to be executed after eZSession::start()|lazyStart()