/** * Remove session data for user \a $userID. * @todo should use eZSession api (needs to be created) so * callbacks (like preference / basket..) is cleared as well. * * @params int $userID */ static function removeSessionData($userID) { eZUser::clearSessionCache(); eZSession::getHandlerInstance()->deleteByUserIDs(array($userID)); }
if ( $clean['session'] ) { if ( !eZSession::getHandlerInstance()->hasBackendAccess() ) { $cli->output( "Could not remove sessions, current session handler does not support session cleanup (not backend based)." ); } else { $cli->output( "Removing all sessions" ); eZSession::cleanup(); } } if ( $clean['expired_session'] ) { if ( !eZSession::getHandlerInstance()->hasBackendAccess() ) { $cli->output( "Could not remove expired sessions, current session handler does not support session garbage collection (not backend based)." ); } else { $cli->output( "Removing expired sessions,", false ); eZSession::garbageCollector(); $activeCount = eZSession::countActive(); $cli->output( " " . $cli->stylize( 'emphasize', $activeCount ) . " left" ); } } if ( $clean['preferences'] ) { $cli->output( "Removing all preferences" );
/** * 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(); }
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() */ eZDebug::checkDebugByUser(); ezpEvent::getInstance()->notify('request/input', array($uri));
$gcSessionsCompleted = eZSession::garbageCollector(); $sessionsRemoved = true; } else { if ($module->isCurrentAction('RemoveSelectedSessions')) { if ($userID) { if ($http->hasPostVariable('SessionKeyArray')) { $sessionKeyArray = $http->postVariable('SessionKeyArray'); foreach ($sessionKeyArray as $sessionKeyItem) { eZSession::getHandlerInstance()->destroy($sessionKeyItem); } } } else { if ($http->hasPostVariable('UserIDArray')) { $userIDArray = $http->postVariable('UserIDArray'); if (count($userIDArray) > 0) { eZSession::getHandlerInstance()->deleteByUserIDs($userIDArray); } } } } } } } } $viewParameters = $Params['UserParameters']; if (isset($viewParameters['offset']) and is_numeric($viewParameters['offset'])) { $param['offset'] = $viewParameters['offset']; } else { $param['offset'] = 0; $viewParameters['offset'] = 0; }
$params['database'] = $dbName; } $db = eZDB::instance($dbImpl, $params, true); eZDB::setInstance($db); } $db->setIsSQLOutputEnabled($showSQL); if ($clean['session']) { if (!eZSession::getHandlerInstance()->usesDatabaseTable()) { $cli->output("Could not remove sessions, current session handler does not support session cleanup (not backend based)."); } else { $cli->output("Removing all sessions"); eZSession::cleanup(); } } if ($clean['expired_session']) { if (!eZSession::getHandlerInstance()->usesDatabaseTable()) { $cli->output("Could not remove expired sessions, current session handler does not support session garbage collection (not backend based)."); } else { $cli->output("Removing expired sessions,", false); eZSession::garbageCollector(); $activeCount = eZSession::countActive(); $cli->output(" " . $cli->stylize('emphasize', $activeCount) . " left"); } } if ($clean['preferences']) { $cli->output("Removing all preferences"); eZPreferences::cleanup(); } if ($clean['browse']) { $cli->output("Removing all recent items and bookmarks for browse page"); eZContentBrowseRecent::cleanup();