예제 #1
0
 /**
  * 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));
 }
예제 #2
0
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" );
예제 #3
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();
 }
예제 #4
0
파일: index.php 프로젝트: legende91/ez
        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));
예제 #5
0
                $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;
}
예제 #6
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();