// TODO: This must be moved to horde/Core.
global $session;
- if (isset($session['horde:alarm_loaded']) &&
- (time() - $session['horde:alarm_loaded']) < $this->_params['ttl']) {
+ if ($session->exists('horde', 'alarm_loaded') &&
+ (time() - $session->get('horde', 'alarm_loaded')) < $this->_params['ttl']) {
return;
}
/* Load current alarms if no preloading requested or if this
* is the first call in this session. */
- if (!$preload || !$session['horde:alarm_loaded']) {
+ if (!$preload || !$session->get('horde', 'alarm_loaded')) {
try {
$app_alarms = $GLOBALS['registry']->callByPackage($app, 'listAlarms', array(time(), $user), array('noperms' => true));
} catch (Horde_Exception $e) {
}
}
- $session['horde:alarm_loaded'] = time();
+ $session->set('horde', 'alarm_loaded', time());
}
/**
global $session;
$signature = serialize($apps);
- if ($this->_blocks = $session['horde:blocks/' . $signature]) {
+ if ($this->_blocks = $session->get('horde', 'blocks/' . $signature)) {
return;
}
}
uksort($this->_blocks, array($this, 'sortBlockCollection'));
- $session['horde:blocks/' . $signature] = $this->_blocks;
+ $session->set('horde', 'blocks/' . $signature, $this->_blocks);
}
/**
static public function getRequestToken($slug)
{
$token = Horde_Token::generateId($slug);
- $GLOBALS['session']['horde:form_secrets/' . $token] = time();
+ $GLOBALS['session']->set('horde', 'form_secrets/' . $token, time());
return $token;
}
{
global $conf, $session;
- if (!isset($session['horde:form_secrets/' . $token])) {
+ if (!$session->exists('horde', 'form_secrets/' . $token)) {
throw new Horde_Exception(Horde_Core_Translation::t("We cannot verify that this request was really sent by you. It could be a malicious request. If you intended to perform this action, you can retry it now."));
}
- if (($session['horde:form_secrets/' . $token] + $GLOBALS['conf']['urls']['token_lifetime'] * 60) < time()) {
+ if (($session->get('horde', 'form_secrets/' . $token) + $GLOBALS['conf']['urls']['token_lifetime'] * 60) < time()) {
throw new Horde_Exception(sprintf(Horde_Core_Translation::t("This request cannot be completed because the link you followed or the form you submitted was only valid for %s minutes. Please try again now."), $GLOBALS['conf']['urls']['token_lifetime']));
}
}
*/
public function setIEVersion($ver)
{
- $GLOBALS['session']['horde:ie_version'] = $ver;
+ $GLOBALS['session']->set('horde', 'ie_version', $ver);
}
/**
*/
public function getIEVersion()
{
- if (isset($GLOBALS['session']['horde:ie_version'])) {
- return $GLOBALS['session']['horde:ie_version'];
- } else {
- return null;
- }
+ return isset($GLOBALS['session'])
+ ? $GLOBALS['session']->get('horde', 'ie_version')
+ : null;
}
}
try {
$this->_instances[$sig] = new Horde_Core_Prefs($driver, $scope, $opts, $params);
} catch (Horde_Prefs_Exception $e) {
- if (!$GLOBALS['session']['horde:no_prefs']) {
- $GLOBALS['session']['horde:no_prefs'] = true;
+ if (!$GLOBALS['session']->get('horde', 'no_prefs')) {
+ $GLOBALS['session']->set('horde', 'no_prefs', true);
if (isset($GLOBALS['notification'])) {
$GLOBALS['notification']->push(Horde_Core_Translation::t("The preferences backend is currently unavailable and your preferences have not been loaded. You may continue to use the system with default preferences."));
}
*/
public function getSession($instance, $id)
{
- return $GLOBALS['session']['horde:tree-' . $instance . '/' . $id];
+ return $GLOBALS['session']->get('horde', 'tree-' . $instance . '/' . $id);
}
/**
*/
public function setSession($instance, $id, $val)
{
- $GLOBALS['session']['horde:tree-' . $instance . '/' . $id] = $val;
+ $GLOBALS['session']->set('horde', 'tree-' . $instance . '/' . $id, $val);
}
}
*/
public function getTasklistFromCache()
{
- return $GLOBALS['session']['horde:logintasks/' . $this->_app];
+ return $GLOBALS['session']->get('horde', 'logintasks/' . $this->_app);
}
/**
*/
public function storeTasklistInCache($tasklist)
{
- $GLOBALS['session']['horde:logintasks/' . $this->_app] = $tasklist;
+ $GLOBALS['session']->set('horde', 'logintasks/' . $this->_app, $tasklist);
}
/**
switch ($this->_app) {
case 'horde':
- if (isset($session['horde:logintasks/horde'])) {
+ if ($session->exists('horde', 'logintasks/horde')) {
return $tasks;
}
break;
default:
- if (!isset($session['horde:logintasks/horde'])) {
+ if (!$session->exists('horde', 'logintasks/horde')) {
array_unshift($app_list, 'horde');
}
break;
$lasttasks = $this->getLastRun();
$lasttasks[$this->_app] = time();
if (($this->_app != 'horde') &&
- !isset($session['horde:logintasks/horde'])) {
+ !$session->exists('horde', 'logintasks/horde')) {
$lasttasks['horde'] = time();
- $session['horde:logintasks/horde'] = true;
+ $session->set('horde', 'logintasks/horde', true);
}
$this->setLastRun($lasttasks);
}
*/
public function get($key)
{
- return $GLOBALS['session']['horde:notify/' . $key];
+ return $GLOBALS['session']->get('horde', 'notify/' . $key);
}
/**
*/
public function set($key, $value)
{
- $GLOBALS['session']['horde:notify/' . $key] = $value;
+ $GLOBALS['session']->set('horde', 'notify/' . $key, $value);
}
/**
*/
public function exists($key)
{
- return isset($GLOBALS['session']['horde:notify/' . $key]);
+ return $GLOBALS['session']->exists('horde', 'notify/' . $key);
}
/**
*/
public function clear($key)
{
- unset($GLOBALS['session']['horde:notify/' . $key]);
+ $GLOBALS['session']->remove('horde', 'notify/' . $key);
}
/**
{
global $session;
- $events = $session['horde:notify/' . $listener . ';array'];
+ $events = $session->get('horde', 'notify/' . $listener, Horde_Session::TYPE_ARRAY);
$events[] = $event;
- $session['horde:notify/' . $listener . ';object'] = $events;
+ $session->set('horde', 'notify/' . $listener, $events, Horde_Session::TYPE_OBJECT);
}
}
*/
class Horde_Core_Prefs_Storage_Session extends Horde_Prefs_Storage
{
- const SESS_KEY = 'horde:prefs_session/';
+ const SESS_KEY = 'prefs_session/';
/**
*/
{
global $session;
- return isset($session[self::SESS_KEY . $scope])
- ? $session[self::SESS_KEY . $scope]
+ return $session->exists('horde', self::SESS_KEY . $scope)
+ ? $session->get('horde', self::SESS_KEY . $scope)
: false;
}
if (($old_vals = $this->get($scope)) === false) {
$old_vals = array();
}
- $GLOBALS['session'][self::SESS_KEY . $scope] = array_merge($old_vals, $vals);
+ $GLOBALS['session']->set('horde', self::SESS_KEY . $scope, array_merge($old_vals, $vals));
}
}
global $session;
if (is_null($scope)) {
- unset($session[self::SESS_KEY]);
+ $session->remove('horde', self::SESS_KEY);
} elseif (is_null($pref)) {
- unset($session[self::SESS_KEY . $this->_scope]);
+ $session->remove('horde', self::SESS_KEY . $this->_scope);
} elseif ((($vals = $this->get($scope)) !== false) &&
isset($vals[$pref])) {
unset($vals[$pref]);
- $session[self::SESS_KEY . $scope] = $vals;
+ $session->set('horde', self::SESS_KEY . $scope, $vals);
}
}
if (!$GLOBALS['prefs']->isLocked($pref) &&
!in_array($pref, $this->suppress) &&
(empty($this->prefs[$pref]['advanced']) ||
- $GLOBALS['session']['horde:prefs_advanced']) &&
+ $GLOBALS['session']->get('horde', 'prefs_advanced')) &&
((!empty($this->prefs[$pref]['type']) &&
($this->prefs[$pref]['type'] != 'implicit')))) {
$prefs[] = $pref;
/* Toggle Advanced/Basic mode. */
if (!empty($this->vars->show_advanced) ||
!empty($this->vars->show_basic)) {
- $GLOBALS['session']['horde:prefs_advanced'] = !empty($this->vars->show_advanced);
+ $GLOBALS['session']->set('horde', 'prefs_advanced', !empty($this->vars->show_advanced));
}
if (!$this->group || !$this->groupIsEditable($this->group)) {
$t->set('apps', $tmp);
$t->set('header', htmlspecialchars(($this->app == 'horde') ? Horde_Core_Translation::t("Global Preferences") : sprintf(Horde_Core_Translation::t("Preferences for %s"), $registry->get('name', $this->app))));
- if ($GLOBALS['session']['horde:prefs_advanced']) {
+ if ($GLOBALS['session']->get('horde', 'prefs_advanced')) {
$t->set('advanced', $this->selfUrl()->add('show_advanced', 1));
} else {
$t->set('basic', $this->selfUrl()->add('show_basic', 1));
$html = '';
if (!$prefs->isLocked('language')) {
- $session['horde:language'] = $registry->preferredLang();
+ $session->set('horde', 'language', $registry->preferredLang());
$html = sprintf('<form name="language" action="%s">',
Horde::url($registry->get('webroot', 'horde') . '/services/language.php', false, -1));
$html .= '<input type="hidden" name="url" value="' . @htmlspecialchars(Horde::selfUrl(false, false, true)) . '" />';
$html .= '<select name="new_lang" onchange="document.language.submit()">';
foreach ($registry->nlsconfig['languages'] as $key => $val) {
- $sel = ($key == $session['horde:language']) ? ' selected="selected"' : '';
+ $sel = ($key == $session->get('horde', 'language')) ? ' selected="selected"' : '';
$html .= "<option value=\"$key\"$sel>$val</option>";
}
$html .= '</select></form>';
* 'notification_override' session variable. */
$GLOBALS['notification'] = $injector->getInstance('Horde_Notification');
if (Horde_Util::getFormData('ajaxui') &&
- ($override = $session['horde:notification_override'])) {
+ ($override = $session->get('horde', 'notification_override'))) {
require_once $override[0];
$GLOBALS['notification']->attach('status', null, $override[1]);
} else {
*/
public function clearCache()
{
- unset($GLOBALS['session']['horde:registry/']);
+ $GLOBALS['session']->remove('horde', 'registry/');
$this->_saveCacheVar('api', true);
$this->_saveCacheVar('appcache', true);
}
}
} else {
$data = serialize($this->_cache[$name]);
- $GLOBALS['session']['horde:registry/' . $name] = $md5sum = hash('md5', $data);
+ $md5sum = hash('md5', $data);
+ $GLOBALS['session']->set('horde', 'registry/' . $name, $md5sum);
$id = $this->_getCacheId($name, false) . '|' . $md5sum;
if ($ob->set($id, $data, 86400)) {
Horde::logMessage('Horde_Registry: stored ' . $name . ' with cache ID ' . $id, 'DEBUG');
if (!$md5) {
return $id;
- } elseif ($hash = $GLOBALS['session']['horde:registry/' . $name]) {
+ } elseif ($hash = $GLOBALS['session']->get('horde', 'registry/' . $name)) {
return $id . '|' . $hash;
}
global $session;
/* Do logout tasks. */
- foreach (array_keys($session['horde:auth_app/;array']) as $app) {
+ foreach (array_keys($session->get('horde', 'auth_app/', Horde_Session::TYPE_ARRAY)) as $app) {
try {
$this->callAppMethod($app, 'logout');
} catch (Horde_Exception $e) {}
}
- unset($session['horde:auth'], $session['horde:auth_app/']);
+ $session->remove('horde', 'auth');
+ $session->remove('horde', 'auth_app/');
/* Remove the user's cached preferences if they are present. */
$GLOBALS['injector']->getInstance('Horde_Core_Factory_Prefs')->clearCache();
/* Check for cached authentication results. */
if ($this->getAuth() &&
(($app == 'horde') ||
- isset($GLOBALS['session']['horde:auth_app/' . $app]))) {
+ $GLOBALS['session']->exists('horde', 'auth_app/' . $app))) {
return $this->checkExistingAuth();
}
global $session;
if ($format == 'original') {
- return isset($session['horde:auth/authId'])
- ? $session['horde:auth/authId']
+ return $session->exists('horde', 'auth/authId')
+ ? $session->get('horde', 'auth/authId')
: false;
}
- $user = $session['horde:auth/userId'];
+ $user = $session->get('horde', 'auth/userId');
if (is_null($user)) {
return false;
}
*/
public function passwordChangeRequested()
{
- return (bool)$GLOBALS['session']['horde:auth/change'];
+ return (bool)$GLOBALS['session']->get('horde', 'auth/change');
}
/**
$secret = $GLOBALS['injector']->getInstance('Horde_Secret');
$entry = $secret->write($secret->getKey('auth'), serialize($credentials));
- if (($base_app = $session['horde:auth/credentials']) &&
- ($session['horde:auth_app/' . $base_app] == $entry)) {
+ if (($base_app = $session->get('horde', 'auth/credentials')) &&
+ ($session->get('horde', 'auth_app/' . $base_app) == $entry)) {
$entry = null;
}
- $session['horde:auth_app/' . $app] = $entry;
+ $session->set('horde', 'auth_app/' . $app, $entry);
}
/**
{
global $session;
- $base_app = $session['horde:auth/credentials'];
+ $base_app = $session->get('horde', 'auth/credentials');
if (is_null($base_app)) {
return false;
}
$app = $base_app;
}
- if (!isset($session['horde:auth_app/' . $app])) {
+ if (!$session->exists('horde', 'auth_app/' . $app)) {
return ($base_app != $app)
? $this->_getAuthCredentials($app)
: false;
}
$secret = $GLOBALS['injector']->getInstance('Horde_Secret');
- return @unserialize($secret->read($secret->getKey('auth'), $session['horde:auth_app/' . $app]));
+ return @unserialize($secret->read($secret->getKey('auth'), $session->get('horde', 'auth_app/' . $app)));
}
/**
return;
}
- $session['horde:auth/authId'] = $authId;
- $session['horde:auth/browser'] = $GLOBALS['browser']->getAgentString();
+ $session->set('horde', 'auth/authId', $authId);
+ $session->set('horde', 'auth/browser', $GLOBALS['browser']->getAgentString());
if (!empty($options['change'])) {
- $session['horde:auth/change'] = 1;
+ $session->set('horde', 'auth/change', 1);
}
- $session['horde:auth/credentials'] = $app;
+ $session->set('horde', 'auth/credentials', $app);
if (isset($_SERVER['REMOTE_ADDR'])) {
- $session['horde:auth/remoteAddr'] = $_SERVER['REMOTE_ADDR'];
+ $session->set('horde', 'auth/remoteAddr', $_SERVER['REMOTE_ADDR']);
}
- $session['horde:auth/timestamp'] = time();
- $session['horde:auth/userId'] = $this->convertUsername(trim($authId), true);
+ $session->set('horde', 'auth/timestamp', time());
+ $session->set('horde', 'auth/userId', $this->convertUsername(trim($authId), true));
$this->setAuthCredential($credentials, null, $app);
$auth = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Auth')->create();
if (!empty($GLOBALS['conf']['auth']['checkip']) &&
- ($remoteaddr = $session['horde:auth/remoteAddr']) &&
+ ($remoteaddr = $session->get('horde', 'auth/remoteAddr')) &&
($remoteaddr != $_SERVER['REMOTE_ADDR'])) {
$auth->setError(Horde_Core_Auth_Application::REASON_SESSIONIP);
return false;
}
if (!empty($GLOBALS['conf']['auth']['checkbrowser']) &&
- ($session['horde:auth/browser'] != $GLOBALS['browser']->getAgentString())) {
+ ($session->get('horde', 'auth/browser') != $GLOBALS['browser']->getAgentString())) {
$auth->setError(Horde_Core_Auth_Application::REASON_BROWSER);
return false;
}
} elseif (!empty($lang) && $this->isValidLang($lang)) {
$language = $lang;
/* Check if we have a language set in the session */
- } elseif (isset($GLOBALS['session']['horde:language'])) {
- $language = $GLOBALS['session']['horde:language'];
+ } elseif ($GLOBALS['session']->exists('horde', 'language')) {
+ $language = $GLOBALS['session']->get('horde', 'language');
/* Use site-wide default, if one is defined */
} elseif (!empty($this->nlsconfig['defaults']['language'])) {
$language = $this->nlsconfig['defaults']['language'];
$lang = $this->preferredLang();
}
- $GLOBALS['session']['horde:language'] = $lang;
+ $GLOBALS['session']->set('horde', 'language', $lang);
if (isset($GLOBALS['language'])) {
if ($GLOBALS['language'] == $lang) {
if ($this->_useFormToken) {
$token = Horde_Token::generateId($this->_name);
- $GLOBALS['session']['horde:form_secrets/' . $token] = true;
+ $GLOBALS['session']->set('horde', 'form_secrets/' . $token, true);
$this->_preserveVarByPost($this->_name . '_formToken', $token);
}
if ($this->_useFormToken) {
$token = Horde_Token::generateId($this->_name);
- $GLOBALS['session']['horde:form_secrets/' . $token] = true;
+ $GLOBALS['session']->set('horde', 'form_secrets/' . $token, true);
$this->_preserveVarByPost($this->_name . '_formToken', $token);
}
{
if ($this->_useFormToken) {
$token = Horde_Token::generateId($this->_name);
- $GLOBALS['session']['horde:form_secrets/' . $token] = true;
+ $GLOBALS['session']->set('horde', 'form_secrets/' . $token, true);
$this->_preserveVarByPost($this->_name . '_formToken', $token);
}
if (!empty($passedToken) && !$tokenSource->verify($passedToken)) {
$this->_errors['_formToken'] = Horde_Form_Translation::t("This form has already been processed.");
}
- if (!$GLOBALS['session']['horde:form_secrets/' . $passedToken]) {
+ if (!$GLOBALS['session']->get('horde', 'form_secrets/' . $passedToken)) {
$this->_errors['_formSecret'] = Horde_Form_Translation::t("Required secret is invalid - potentially malicious request.");
}
}
public function userIsInGroup($user, $gid, $subgroups = true)
{
$id = implode('-', array($user, $subgroups, $gid));
- if (isset($GLOBALS['session']['horde:groups_i/' . $id])) {
- return $GLOBALS['session']['horde:groups_i/' . $id];
+ if ($GLOBALS['session']->exists('horde', 'groups_i/' . $id)) {
+ return $GLOBALS['session']->get('horde', 'groups_i/' . $id);
}
try {
return false;
}
- $GLOBALS['session']['horde:groups_i/' . $id] = $result = (bool)!empty($users[$user]);
+ $GLOBALS['session']->set('horde', 'groups_i/' . $id, $result = (bool)!empty($users[$user]));
return $result;
}
public function getGroupMemberships($user, $parentGroups = false)
{
$id = implode('|', array($user, $parentGroups));
- if (isset($GLOBALS['session']['horde:groups_m/' . $id])) {
- return $GLOBALS['session']['horde:groups_m/' . $id];
+ if ($GLOBALS['session']->exists('horde', 'groups_m/' . $id)) {
+ return $GLOBALS['session']->get('horde', 'groups_m/' . $id);
}
$sql = 'SELECT g.group_uid AS group_uid, g.group_name AS group_name FROM horde_groups g, horde_groups_members m '
}
}
- $GLOBALS['session']['horde:groups_m/' . $id] = $groups;
+ $GLOBALS['session']->set('horde', 'groups_m/' . $id, $groups);
return $groups;
}
public function userIsInGroup($user, $gid, $subgroups = true)
{
$id = implode('|', array($user, $subgroups, $gid));
- if (isset($GLOBALS['session']['horde:groups_i/' . $id])) {
- return $GLOBALS['session']['horde:groups_i/' . $id];
+ if ($GLOBALS['session']->exists('horde', 'groups_i/' . $id)) {
+ return $GLOBALS['session']->get('horde', 'groups_i/' . $id);
}
if ($subgroups) {
}
- $GLOBALS['session']['horde:groups_i/' . $id] = (bool)$result;
+ $GLOBALS['session']->set('horde', 'groups_i/' . $id, (bool)$result);
return (bool)$result;
}