IMP: Convert to new Horde_Session API
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 3 Nov 2010 06:46:50 +0000 (00:46 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 4 Nov 2010 19:43:00 +0000 (13:43 -0600)
54 files changed:
imp/compose-dimp.php
imp/compose-mimp.php
imp/compose.php
imp/folders-mimp.php
imp/folders.php
imp/lib/Ajax/Application.php
imp/lib/Ajax/Imple/ContactAutoCompleter.php
imp/lib/Api.php
imp/lib/Application.php
imp/lib/Auth.php
imp/lib/Block/summary.php
imp/lib/Compose.php
imp/lib/Crypt/Pgp.php
imp/lib/Crypt/Smime.php
imp/lib/Filter.php
imp/lib/IMP.php
imp/lib/Imap.php
imp/lib/Imap/Acl.php
imp/lib/Imap/Flags.php
imp/lib/Imap/Tree.php
imp/lib/Injector/Factory/AuthImap.php
imp/lib/Injector/Factory/Compose.php
imp/lib/Injector/Factory/Imap.php
imp/lib/Injector/Factory/Imaptree.php
imp/lib/Injector/Factory/Mail.php
imp/lib/Injector/Factory/MailboxList.php
imp/lib/Injector/Factory/Quota.php
imp/lib/Injector/Factory/Search.php
imp/lib/Mailbox/List.php
imp/lib/Message.php
imp/lib/Mime/Viewer/Html.php
imp/lib/Mime/Viewer/Itip.php
imp/lib/Mime/Viewer/Pgp.php
imp/lib/Mime/Viewer/Plain.php
imp/lib/Mime/Viewer/Smime.php
imp/lib/Prefs/Identity.php
imp/lib/Prefs/Ui.php
imp/lib/Quota/Mdaemon.php
imp/lib/Search.php
imp/lib/Sentmail/Base.php
imp/lib/Tree/Flist.php
imp/lib/Ui/Block.php
imp/lib/Ui/Message.php
imp/lib/Views/Compose.php
imp/lib/Views/ListMessages.php
imp/mailbox-mimp.php
imp/mailbox.php
imp/message-mimp.php
imp/message.php
imp/search-basic.php
imp/search.php
imp/templates/dimp/index.inc
imp/templates/dimp/javascript_defs_dimp.php
imp/templates/imp/javascript_defs.php

index 0c0cd0a..b0c6f32 100644 (file)
@@ -130,7 +130,7 @@ case 'forward_both':
             break;
         }
 
-        $rte = $show_editor = ($prefs->getValue('compose_html') && $session['imp:rteavail']);
+        $rte = $show_editor = ($prefs->getValue('compose_html') && $session->get('imp', 'rteavail'));
     } else {
         try {
             $contents = $imp_ui->getContents($vars);
@@ -192,7 +192,7 @@ case 'resume':
     break;
 
 case 'new':
-    $rte = $show_editor = ($prefs->getValue('compose_html') && $session['imp:rteavail']);
+    $rte = $show_editor = ($prefs->getValue('compose_html') && $session->get('imp', 'rteavail'));
     break;
 }
 
index 0400ba9..5d00cf4 100644 (file)
@@ -101,7 +101,7 @@ foreach (array_keys($display_hdrs) as $val) {
 }
 
 /* Add attachment. */
-if ($session['imp:file_upload'] &&
+if ($session->get('imp', 'file_upload') &&
     !$imp_compose->addFilesFromUpload('upload_', $vars->a == _("Expand Names")) &&
     ($vars->a != _("Expand Names"))) {
     $vars->a = null;
@@ -378,7 +378,7 @@ $t->set('hdrs', $hdrs);
 $t->set('title', $title);
 
 /* Activate advanced compose attachments UI? */
-if ($session['imp:file_upload']) {
+if ($session->get('imp', 'file_upload')) {
     try {
         if (Horde::callHook('mimp_advanced', array('compose_attach'), 'imp')) {
             $t->set('attach', true);
index fdf8dcb..34462a9 100644 (file)
@@ -145,7 +145,7 @@ $isPopup = ($prefs->getValue('compose_popup') || $vars->popup);
 /* Determine the composition type - text or HTML.
    $rtemode is null if browser does not support it. */
 $rtemode = null;
-if ($session['imp:rteavail']) {
+if ($session->get('imp', 'rteavail')) {
     if ($prefs->isLocked('compose_html')) {
         $rtemode = $prefs->getValue('compose_html');
     } else {
@@ -160,7 +160,7 @@ if ($session['imp:rteavail']) {
 }
 
 /* Update the file attachment information. */
-if ($session['imp:file_upload']) {
+if ($session->get('imp', 'file_upload')) {
     /* Only notify if we are reloading the compose screen. */
     $notify = !in_array($vars->actionID, array('send_message', 'save_draft'));
 
@@ -711,7 +711,7 @@ if ($redirect) {
     /* Prepare the compose template. */
     $tabindex = 0;
 
-    $t->set('file_upload', $session['imp:file_upload']);
+    $t->set('file_upload', $session->get('imp', 'file_upload'));
     $t->set('forminput', Horde_Util::formInput());
 
     $hidden = array(
@@ -726,8 +726,8 @@ if ($redirect) {
         'user' => $registry->getAuth()
     );
 
-    if (isset($session['imp:file_upload'])) {
-        $hidden['MAX_FILE_SIZE'] = $session['imp:file_upload'];
+    if ($session->exists('imp', 'file_upload')) {
+        $hidden['MAX_FILE_SIZE'] = $session->get('imp', 'file_upload');
     }
     foreach (array('page', 'start', 'popup') as $val) {
         $hidden[$val] = htmlspecialchars($vars->$val);
@@ -869,7 +869,7 @@ if ($redirect) {
             'label' => ''
         );
     }
-    if ($session['imp:file_upload']) {
+    if ($session->get('imp', 'file_upload')) {
         $url = new Horde_Url('#attachments');
         $compose_options[] = array(
             'url' => $url->link(array('class' => 'widget')),
@@ -956,7 +956,7 @@ if ($redirect) {
         $t->set('vcard', Horde::label('vcard', _("Attach your contact information to the message?")));
         $t->set('attach_vcard', $vars->vcard);
     }
-    if ($session['imp:file_upload']) {
+    if ($session->get('imp', 'file_upload')) {
         $localeinfo = Horde_Nls::getLocaleInfo();
         try {
             $t->set('selectlistlink', $registry->call('files/selectlistLink', array(_("Attach Files"), 'widget', 'compose', true)));
index a33ad41..f6e202a 100644 (file)
@@ -29,7 +29,7 @@ if (empty($conf['user']['allow_folders'])) {
 
 /* Decide whether or not to show all the unsubscribed folders */
 $subscribe = $prefs->getValue('subscribe');
-$showAll = (!$subscribe || $session['imp:showunsub']);
+$showAll = (!$subscribe || $session->get('imp', 'showunsub'));
 
 /* Initialize the IMP_Imap_Tree object. */
 $imptree = $injector->getInstance('IMP_Imap_Tree');
@@ -38,7 +38,7 @@ $mask = 0;
 /* Toggle subscribed view, if necessary. */
 if ($subscribe && Horde_Util::getFormData('ts')) {
     $showAll = !$showAll;
-    $session['imp:showunsub'] = $showAll;
+    $session->set('imp', 'showunsub', $showAll);
     $imptree->showUnsubscribed($showAll);
     if ($showAll) {
         $mask |= IMP_Imap_Tree::FLIST_UNSUB;
index e1499f0..78a2831 100644 (file)
@@ -30,7 +30,7 @@ if (!$conf['user']['allow_folders']) {
 
 /* Decide whether or not to show all the unsubscribed folders */
 $subscribe = $prefs->getValue('subscribe');
-$showAll = (!$subscribe || $session['imp:showunsub']);
+$showAll = (!$subscribe || $session->get('imp', 'showunsub'));
 
 $vars = Horde_Variables::getDefaultVariables();
 
@@ -204,7 +204,7 @@ case 'unsubscribe_folder':
 case 'toggle_subscribed_view':
     if ($subscribe) {
         $showAll = !$showAll;
-        $session['imp:showunsub'] = $showAll;
+        $session->set('imp', 'showunsub', $showAll);
         $imaptree->showUnsubscribed($showAll);
     }
     break;
@@ -331,7 +331,8 @@ $folders_token = Horde::getRequestToken('imp.folders');
 $folders_url_ob = new Horde_Url($folders_url);
 $folders_url_ob->add('folders_token', $folders_token);
 
-if ($session['imp:file_upload'] && ($vars->actionID == 'import_mbox')) {
+if ($session->get('imp', 'file_upload') &&
+    ($vars->actionID == 'import_mbox')) {
     $title = _("Folder Navigator");
     $menu = IMP::menu();
     require IMP_TEMPLATES . '/common-header.inc';
@@ -389,7 +390,7 @@ if ($prefs->getValue('subscribe')) {
 }
 $a_template->set('nav_poll', !$prefs->isLocked('nav_poll') && !$prefs->getValue('nav_poll_all'));
 $a_template->set('notrash', !$prefs->getValue('use_trash'));
-$a_template->set('file_upload', $session['imp:file_upload']);
+$a_template->set('file_upload', $session->get('imp', 'file_upload'));
 $a_template->set('expand_all', Horde::widget($folders_url_ob->copy()->add(array('actionID' => 'expand_all_folders', 'folders_token' => $folders_token)), _("Expand All Folders"), 'widget', '', '', _("Expand All"), true));
 $a_template->set('collapse_all', Horde::widget($folders_url_ob->copy()->add(array('actionID' => 'collapse_all_folders', 'folders_token' => $folders_token)), _("Collapse All Folders"), 'widget', '', '', _("Collapse All"), true));
 
index cbba8a1..bd44638 100644 (file)
@@ -1534,7 +1534,7 @@ class IMP_Ajax_Application extends Horde_Core_Ajax_Application
         $result->action = 'addAttachment';
         $result->success = 0;
 
-        if ($GLOBALS['session']['imp:file_upload'] &&
+        if ($GLOBALS['session']->get('imp', 'file_upload') &&
             $imp_compose->addFilesFromUpload('file_')) {
             $result->atc = end(IMP_Dimp::getAttachmentInfo($imp_compose));
             $result->success = 1;
@@ -2060,7 +2060,7 @@ class IMP_Ajax_Application extends Horde_Core_Ajax_Application
      */
     protected function _getQuota()
     {
-        if ($GLOBALS['session']['imp:imap_quota']) {
+        if ($GLOBALS['session']->get('imp', 'imap_quota')) {
             $quotadata = IMP::quotaData(false);
             if (!empty($quotadata)) {
                 return array(
index 79b7e35..eb0bf34 100644 (file)
@@ -40,7 +40,7 @@ class IMP_Ajax_Imple_ContactAutoCompleter extends Horde_Core_Ajax_Imple_AutoComp
             ? 0
             : $GLOBALS['conf']['compose']['ac_browser'];
 
-        if ($ac_browser && empty($GLOBALS['session']['imp:ac_ajax'])) {
+        if ($ac_browser && !$GLOBALS['session']->get('imp', 'ac_ajax')) {
             $success = $use_ajax = true;
             $sparams = IMP::getAddressbookSearchParams();
             foreach ($sparams['fields'] as $val) {
@@ -55,10 +55,10 @@ class IMP_Ajax_Imple_ContactAutoCompleter extends Horde_Core_Ajax_Imple_AutoComp
                 $addrlist = IMP_Compose::getAddressList();
                 $use_ajax = count($addrlist) > $ac_browser;
             }
-            $GLOBALS['session']['imp:ac_ajax'] = $use_ajax;
+            $GLOBALS['session']->set('imp', 'ac_ajax', $use_ajax);
         }
 
-        if (!$ac_browser || $GLOBALS['session']['imp:ac_ajax']) {
+        if (!$ac_browser || $GLOBALS['session']->get('imp', 'ac_ajax')) {
             $ret['ajax'] = 'ContactAutoCompleter';
             $ret['params']['minChars'] = intval($GLOBALS['conf']['compose']['ac_threshold'] ? $GLOBALS['conf']['compose']['ac_threshold'] : 1);
         } else {
index 7856972..52ba1fe 100644 (file)
@@ -186,7 +186,7 @@ class IMP_Api extends Horde_Registry_Api
         return array(
             'hostspec' => $imap_ob->ob->getParam('hostspec'),
             'port' => $imap_ob->ob->getParam('port'),
-            'protocol' => $GLOBALS['session']['imp:protocol'],
+            'protocol' => $GLOBALS['session']->get('imp', 'protocol'),
             'secure' => $imap_ob->ob->getParam('secure')
         );
     }
@@ -228,7 +228,7 @@ class IMP_Api extends Horde_Registry_Api
      */
     public function flagList($mailbox = null)
     {
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             return array();
         }
 
index 95714ad..3f5373a 100644 (file)
@@ -65,7 +65,7 @@ class IMP_Application extends Horde_Registry_Application
     {
         /* Methods only available if admin config is set for this
          * server/login. */
-        if (!$GLOBALS['session']['imp:imap_admin']) {
+        if (!$GLOBALS['session']->get('imp', 'imap_admin')) {
             $this->disabled = array_merge($this->disabled, array('authAddUser', 'authRemoveUser', 'authUserList'));
         }
     }
@@ -148,7 +148,7 @@ class IMP_Application extends Horde_Registry_Application
     public function logout()
     {
         /* Clean up dangling IMP_Compose objects. */
-        foreach (array_keys($GLOBALS['session']['imp:compose_cache;array']) as $key) {
+        foreach (array_keys($GLOBALS['session']->get('imp', 'compose_cache', Horde_Session::TYPE_ARRAY)) as $key) {
             $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Compose')->create($key)->destroy('cancel');
         }
     }
@@ -233,7 +233,7 @@ class IMP_Application extends Horde_Registry_Application
             'url' => IMP::generateIMPUrl($menu_mailbox_url, 'INBOX')
         ));
 
-        if ($GLOBALS['session']['imp:protocol'] != 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') != 'pop') {
             if ($prefs->getValue('use_trash') &&
                 ($trash_folder = $prefs->getValue('trash_folder')) &&
                 $prefs->getValue('empty_trash_menu')) {
@@ -281,7 +281,7 @@ class IMP_Application extends Horde_Registry_Application
             ));
         }
 
-        if ($GLOBALS['session']['imp:protocol'] != 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') != 'pop') {
             $menu->addArray(array(
                 'icon' => 'search.png',
                 'text' =>_("_Search"),
@@ -390,9 +390,13 @@ class IMP_Application extends Horde_Registry_Application
         ));
 
         if ($new_session) {
-            $GLOBALS['session']['imp:select_view'] = empty($credentials['imp_select_view'])
-                ? ''
-                : $credentials['imp_select_view'];
+            $GLOBALS['session']->set(
+                'imp',
+                'select_view',
+                empty($credentials['imp_select_view'])
+                    ? ''
+                    : $credentials['imp_select_view']
+            );
         }
     }
 
@@ -584,7 +588,7 @@ class IMP_Application extends Horde_Registry_Application
             )
         );
 
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             return;
         }
 
index 871143d..016a95e 100644 (file)
@@ -58,7 +58,7 @@ class IMP_Auth
 
             /* _createSession() will create the imp session variable, so there
              * is no concern for an infinite loop here. */
-            if (!isset($GLOBALS['session']['imp:server_key'])) {
+            if (!$GLOBALS['session']->exists('imp', 'server_key')) {
                 self::_createSession($credentials);
                 return true;
             }
@@ -162,7 +162,7 @@ class IMP_Auth
             empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? '' : ' (forwarded for [' . $_SERVER['HTTP_X_FORWARDED_FOR'] . '])',
             $imap_ob ? $imap_ob->getParam('hostspec') : '',
             $imap_ob ? $imap_ob->getParam('port') : '',
-            isset($GLOBALS['session:imp']['protocol']) ? ' [' . $GLOBALS['session']['imp:protocol'] . ']' : ''
+            isset($GLOBALS['session:imp']['protocol']) ? ' [' . $GLOBALS['session']->get('imp', 'protocol') . ']' : ''
         );
 
         Horde::logMessage($msg, $level);
@@ -211,7 +211,7 @@ class IMP_Auth
      */
     static protected function _createSession($credentials)
     {
-        $GLOBALS['session']['imp:server_key'] = $credentials['server'];
+        $GLOBALS['session']->set('imp', 'server_key', $credentials['server']);
 
         /* Load the server configuration. */
         $ptr = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->loadServerConfig($credentials['server']);
@@ -227,7 +227,7 @@ class IMP_Auth
                 'userId' => $credentials['userId']
             ));
         } catch (Horde_Auth_Exception $e) {
-            unset($GLOBALS['session']['imp:']);
+            $GLOBALS['session']->remove('imp');
             throw $e;
         }
     }
@@ -329,7 +329,7 @@ class IMP_Auth
      */
     static public function getInitialPage($url = false)
     {
-        switch ($GLOBALS['session']['imp:view']) {
+        switch ($GLOBALS['session']->get('imp', 'view')) {
         case 'dimp':
             $page = 'index-dimp.php';
             break;
@@ -339,7 +339,7 @@ class IMP_Auth
             break;
 
         default:
-            $init_url = ($GLOBALS['session']['imp:protocol'] == 'pop')
+            $init_url = ($GLOBALS['session']->get('imp', 'protocol') == 'pop')
                 ? 'INBOX'
                 : $GLOBALS['prefs']->getValue('initial_page');
 
@@ -377,27 +377,23 @@ class IMP_Auth
      */
     static public function authenticateCallback()
     {
-        global $conf, $session;
+        global $browser, $conf, $injector, $prefs, $registry, $session;
 
-        $imp_imap = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create();
-        $ptr = $imp_imap->loadServerConfig($session['imp:server_key']);
+        $imp_imap = $injector->getInstance('IMP_Injector_Factory_Imap')->create();
+        $ptr = $imp_imap->loadServerConfig($session->get('imp', 'server_key'));
         if ($ptr === false) {
             throw new Horde_Auth_Exception('', Horde_Auth::REASON_FAILED);
         }
 
         /* Set the protocol. */
-        $session['imp:protocol'] = isset($ptr['protocol'])
-            ? $ptr['protocol']
-            : 'imap';
+        $session->set('imp', 'protocol', isset($ptr['protocol']) ? $ptr['protocol'] : 'imap');
 
         /* Set the maildomain. */
-        $maildomain = $GLOBALS['prefs']->getValue('mail_domain');
-        $session['imp:maildomain'] = $maildomain
-            ? $maildomain
-            : $ptr['maildomain'];
+        $maildomain = $prefs->getValue('mail_domain');
+        $session->set('imp', 'maildomain', $maildomain ? $maildomain : $ptr['maildomain']);
 
         /* Store some basic IMAP server information. */
-        if ($session['imp:protocol'] == 'imap') {
+        if ($session->get('imp', 'protocol') == 'imap') {
             foreach (array('acl', 'admin', 'namespace', 'quota') as $val) {
                 if (!empty($ptr[$val])) {
                     $tmp = $ptr[$val];
@@ -406,19 +402,23 @@ class IMP_Auth
                      * these entries in the session if they exist. */
                     foreach (array('password', 'admin_password') as $key) {
                         if (isset($ptr[$val]['params'][$key])) {
-                            $secret = $GLOBALS['injector']->getInstance('Horde_Secret');
+                            $secret = $injector->getInstance('Horde_Secret');
                             $tmp['params'][$key] = $secret->write($secret->getKey('imp'), $ptr[$val]['params'][$key]);
                         }
                     }
 
-                    $session['imp:imap_' . $val] = $tmp;
+                    $session->set('imp', 'imap_' . $val, $tmp);
                 }
             }
 
             /* Set the IMAP threading algorithm. */
-            $session['imp:imap_thread'] = in_array(isset($ptr['thread']) ? strtoupper($ptr['thread']) : 'REFERENCES', $imp_imap->queryCapability('THREAD'))
-                ? 'REFERENCES'
-                : 'ORDEREDSUBJECT';
+            $session->set(
+                'imp',
+                'imap_thread',
+                in_array(isset($ptr['thread']) ? strtoupper($ptr['thread']) : 'REFERENCES', $imp_imap->queryCapability('THREAD'))
+                    ? 'REFERENCES'
+                    : 'ORDEREDSUBJECT'
+            );
         }
 
         /* Set the SMTP options, if needed. */
@@ -431,48 +431,48 @@ class IMP_Auth
             }
 
             if (!empty($smtp)) {
-                $session['imp:smtp'] = $smtp;
+                $session->set('imp', 'smtp', $smtp);
             }
         }
 
         /* Does the server allow file uploads? If yes, store the
          * value, in bytes, of the maximum file size. */
-        $session['imp:file_upload'] = $GLOBALS['browser']->allowFileUploads();
+        $session->set('imp', 'file_upload', $browser->allowFileUploads());
 
         /* Is the 'mail/canApplyFilters' API call available? */
         try {
-            if ($GLOBALS['registry']->call('mail/canApplyFilters')) {
-                $session['imp:filteravail'] = true;
+            if ($registry->call('mail/canApplyFilters')) {
+                $session->set('imp', 'filteravail', true);
             }
         } catch (Horde_Exception $e) {}
 
         /* Is the 'tasks/listTasklists' call available? */
         if ($conf['tasklist']['use_tasklist'] &&
-            $GLOBALS['registry']->hasMethod('tasks/listTasklists')) {
-            $session['imp:tasklistavail'] = true;
+            $registry->hasMethod('tasks/listTasklists')) {
+            $session->set('imp', 'tasklistavail', true);
         }
 
         /* Is the 'notes/listNotepads' call available? */
         if ($conf['notepad']['use_notepad'] &&
-            $GLOBALS['registry']->hasMethod('notes/listNotepads')) {
-            $session['imp:notepadavail'] = true;
+            $registry->hasMethod('notes/listNotepads')) {
+            $session->set('imp', 'notepadavail', true);
         }
 
         /* Is the HTML editor available? */
         $imp_ui = new IMP_Ui_Compose();
-        $session['imp:rteavail'] = $GLOBALS['injector']->getInstance('Horde_Editor')->supportedByBrowser();
+        $session->set('imp', 'rteavail', $injector->getInstance('Horde_Editor')->supportedByBrowser());
 
         /* Determine view. */
         $setcookie = false;
         if (empty($conf['user']['force_view'])) {
             if (empty($conf['user']['select_view']) ||
-                !$session['imp:select_view']) {
-                $view = $GLOBALS['browser']->isMobile()
+                !$session->get('imp', 'select_view')) {
+                $view = $browser->isMobile()
                     ? 'mimp'
-                    : ($GLOBALS['prefs']->getValue('dynamic_view') ? 'dimp' : 'imp');
+                    : ($prefs->getValue('dynamic_view') ? 'dimp' : 'imp');
             } else {
                 $setcookie = true;
-                $view = $session['imp:select_view'];
+                $view = $session->get('imp', 'select_view');
             }
         } else {
             $view = $conf['user']['force_view'];
@@ -481,30 +481,34 @@ class IMP_Auth
         self::setViewMode($view);
 
         if ($setcookie) {
-            setcookie('default_imp_view', $session['imp:view'], time() + 30 * 86400, $conf['cookie']['path'], $conf['cookie']['domain']);
+            setcookie('default_imp_view', $session->get('imp', 'view'), time() + 30 * 86400, $conf['cookie']['path'], $conf['cookie']['domain']);
         }
 
         /* Indicate that notifications should use AJAX mode. */
-        if ($session['imp:view'] == 'dimp') {
-            $GLOBALS['session']['horde:notification_override'] = array(
-                IMP_BASE . '/lib/Notification/Listener/AjaxStatus.php',
-                'IMP_Notification_Listener_AjaxStatus'
+        if ($session->get('imp', 'view') == 'dimp') {
+            $session->set(
+                'horde',
+                'notification_override',
+                array(
+                    IMP_BASE . '/lib/Notification/Listener/AjaxStatus.php',
+                    'IMP_Notification_Listener_AjaxStatus'
+                )
             );
         }
 
         /* Set up search information for the session. Need to manually do
          * first init() here since there is a cyclic IMP_Imap_Tree dependency
          * otherwise. */
-        $GLOBALS['injector']->getInstance('IMP_Search')->init();
+        $injector->getInstance('IMP_Search')->init();
 
         /* If the user wants to run filters on login, make sure they get
            run. */
-        if ($GLOBALS['prefs']->getValue('filter_on_login')) {
-            $GLOBALS['injector']->getInstance('IMP_Filter')->filter('INBOX');
+        if ($prefs->getValue('filter_on_login')) {
+            $injector->getInstance('IMP_Filter')->filter('INBOX');
         }
 
         /* Check for drafts due to session timeouts. */
-        $imp_compose = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Compose')->create()->recoverSessionExpireDraft();
+        $imp_compose = $injector->getInstance('IMP_Injector_Factory_Compose')->create()->recoverSessionExpireDraft();
 
         self::_logMessage(true);
     }
@@ -522,7 +526,7 @@ class IMP_Auth
             $GLOBALS['notification']->push(_("Your browser is too old to display the dynamic mode. Using traditional mode instead."), 'horde.warning');
         }
 
-        $GLOBALS['session']['imp:view'] = $view;
+        $GLOBALS['session']->set('imp', 'view', $view);
     }
 
 }
index 91fd0b1..c9b6f74 100644 (file)
@@ -39,7 +39,7 @@ class Horde_Block_imp_summary extends Horde_Block
     protected function _content()
     {
         $imp_ui = new IMP_Ui_Block();
-        list($html_out, $newmsgs) = $imp_ui->folderSummary($GLOBALS['session']['imp:view']);
+        list($html_out, $newmsgs) = $imp_ui->folderSummary($GLOBALS['session']->get('imp', 'view'));
 
         $html = '<table cellspacing="0" width="100%">';
 
index 83d0539..a9d790a 100644 (file)
@@ -193,7 +193,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
                 $addr = $headers[$k];
                 if ($session) {
                     try {
-                        Horde_Mime::encodeAddress(self::formatAddr($addr), $charset, $GLOBALS['session']['imp:maildomain']);
+                        Horde_Mime::encodeAddress(self::formatAddr($addr), $charset, $GLOBALS['session']->get('imp', 'maildomain'));
                     } catch (Horde_Mime_Exception $e) {
                         throw new IMP_Compose_Exception(sprintf(_("Saving the draft failed. The %s header contains an invalid e-mail address: %s."), $k, $e->getMessage()), $e->getCode());
                     }
@@ -218,7 +218,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             $imp_imap = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create();
             try {
                 $imap_url = $imp_imap->getUtils()->createUrl(array(
-                    'type' => $GLOBALS['session']['imp:protocol'],
+                    'type' => $GLOBALS['session']->get('imp', 'protocol'),
                     'username' => $imp_imap->getParam('username'),
                     'hostspec' => $imp_imap->getParam('hostspec'),
                     'mailbox' => $this->getMetadata('mailbox'),
@@ -241,7 +241,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
         }
 
         return $base->toString(array(
-            'defserver' => $session ? $GLOBALS['session']['imp:maildomain'] : null,
+            'defserver' => $session ? $GLOBALS['session']->get('imp', 'maildomain') : null,
             'headers' => $draft_headers
         ));
     }
@@ -332,7 +332,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             $reply_type = 'forward';
         }
 
-        if ($GLOBALS['session']['imp:view'] == 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') == 'mimp') {
             $compose_html = false;
         } elseif ($prefs->getValue('compose_html')) {
             $compose_html = true;
@@ -403,7 +403,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             $imap_url = $imp_imap->getUtils()->parseUrl(rtrim(ltrim($val, '<'), '>'));
 
             try {
-                if (($imap_url['type'] == $GLOBALS['session']['imp:protocol']) &&
+                if (($imap_url['type'] == $GLOBALS['session']->get('imp', 'protocol')) &&
                     ($imap_url['username'] == $imp_imap->getParam('username')) &&
                     // Ignore hostspec and port, since these can change
                     // even though the server is the same. UIDVALIDITY should
@@ -491,7 +491,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             }
         }
 
-        $barefrom = Horde_Mime_Address::bareAddress($header['from'], $GLOBALS['session']['imp:maildomain']);
+        $barefrom = Horde_Mime_Address::bareAddress($header['from'], $GLOBALS['session']->get('imp', 'maildomain'));
         $encrypt = empty($opts['encrypt']) ? 0 : $opts['encrypt'];
         $recipients = implode(', ', $recip['list']);
 
@@ -669,7 +669,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             }
 
             /* Generate the message string. */
-            $fcc = $mime_message->toString(array('defserver' => $GLOBALS['session']['imp:maildomain'], 'headers' => $headers, 'stream' => true));
+            $fcc = $mime_message->toString(array('defserver' => $GLOBALS['session']->get('imp', 'maildomain'), 'headers' => $headers, 'stream' => true));
 
             $imp_folder = $GLOBALS['injector']->getInstance('IMP_Folder');
 
@@ -800,11 +800,11 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
 
         /* Properly encode the addresses we're sending to. */
         try {
-            $email = Horde_Mime::encodeAddress($email, is_null($message) ? 'UTF-8' : $message->getHeaderCharset(), $GLOBALS['session']['imp:maildomain']);
+            $email = Horde_Mime::encodeAddress($email, is_null($message) ? 'UTF-8' : $message->getHeaderCharset(), $GLOBALS['session']->get('imp', 'maildomain'));
 
             /* Validate the recipient addresses. */
             Horde_Mime_Address::parseAddressList($email, array(
-                'defserver' => $GLOBALS['session']['imp:maildomain'],
+                'defserver' => $GLOBALS['session']->get('imp', 'maildomain'),
                 'validate' => true
             ));
         } catch (Horde_Mime_Exception $e) {
@@ -835,7 +835,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
         }
 
         try {
-            $r_array = Horde_Mime::encodeAddress($recipients, 'UTF-8', $GLOBALS['session']['imp:maildomain']);
+            $r_array = Horde_Mime::encodeAddress($recipients, 'UTF-8', $GLOBALS['session']->get('imp', 'maildomain'));
             $r_array = Horde_Mime_Address::parseAddressList($r_array, array('validate' => true));
         } catch (Horde_Mime_Exception $e) {}
 
@@ -988,7 +988,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
         // Make sure we have a valid host.
         $host = trim($ob['host']);
         if (empty($host)) {
-            $host = $GLOBALS['session']['imp:maildomain'];
+            $host = $GLOBALS['session']->get('imp', 'maildomain');
         }
 
         // Convert IDN hosts to ASCII.
@@ -1504,7 +1504,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             $msg_post = '';
         }
 
-        if ($GLOBALS['session']['imp:view'] == 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') == 'mimp') {
             $compose_html = false;
         } elseif (!empty($opts['format'])) {
             $compose_html = ($opts['format'] == 'html');
@@ -1660,7 +1660,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
             " -----\n" . $this->_getMsgHeaders($h) . "\n";
         $msg_post = "\n\n----- " . _("End forwarded message") . " -----\n";
 
-        if ($GLOBALS['session']['imp:view'] == 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') == 'mimp') {
             $compose_html = false;
         } elseif (!empty($opts['format'])) {
             $compose_html = ($opts['format'] == 'html');
@@ -2220,7 +2220,7 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
      */
     public function maxAttachmentSize()
     {
-        $size = $GLOBALS['session']['imp:file_upload'];
+        $size = $GLOBALS['session']->get('imp', 'file_upload');
 
         if (!empty($GLOBALS['conf']['compose']['attach_size_limit'])) {
             return min($size, max($GLOBALS['conf']['compose']['attach_size_limit'] - $this->sizeOfAttachments(), 0));
@@ -2444,7 +2444,8 @@ class IMP_Compose implements ArrayAccess, Countable, Iterator
         $body_id = null;
         $mode = 'text';
 
-        if (!empty($options['html']) && $GLOBALS['session']['imp:rteavail']) {
+        if (!empty($options['html']) &&
+            $GLOBALS['session']->get('imp', 'rteavail')) {
             $body_id = $contents->findBody('html');
             if (!is_null($body_id)) {
                 $mode = 'html';
index a165298..451d00d 100644 (file)
@@ -394,7 +394,7 @@ class IMP_Crypt_Pgp extends Horde_Crypt_Pgp
             $id = 'personal';
         }
 
-        if (!($cache = $GLOBALS['session']['imp:pgp']) ||
+        if (!($cache = $GLOBALS['session']->get('imp', 'pgp')) ||
             !isset($cache[$type][$id])) {
             return null;
         }
@@ -425,9 +425,9 @@ class IMP_Crypt_Pgp extends Horde_Crypt_Pgp
 
         $secret = $GLOBALS['injector']->getInstance('Horde_Secret');
 
-        $cache = $GLOBALS['session']['imp:pgp;array'];
+        $cache = $GLOBALS['session']->get('imp', 'pgp', Horde_Session::TYPE_ARRAY);
         $cache[$type][$id] = $secret->write($secret->getKey('imp'), $passphrase);
-        $GLOBALS['session']['imp:pgp'] = $cache;
+        $GLOBALS['session']->set('imp', 'pgp', $cache);
 
         return true;
     }
@@ -443,13 +443,13 @@ class IMP_Crypt_Pgp extends Horde_Crypt_Pgp
      */
     public function unsetPassphrase($type, $id = null)
     {
-        if ($cache = $GLOBALS['session']['imp:pgp']) {
+        if ($cache = $GLOBALS['session']->get('imp', 'pgp')) {
             if (($type == 'symmetric') && !is_null($id)) {
                 unset($cache['symmetric'][$id]);
             } else {
                 unset($cache[$type]);
             }
-            $GLOBALS['session']['imp:pgp'] = $cache;
+            $GLOBALS['session']->set('imp', 'pgp', $cache);
         }
     }
 
@@ -524,7 +524,7 @@ class IMP_Crypt_Pgp extends Horde_Crypt_Pgp
         $addr_list = array();
 
         foreach ($addresses as $val) {
-            $addrOb = Horde_Mime_Address::bareAddress($val, $GLOBALS['session']['imp:maildomain'], true);
+            $addrOb = Horde_Mime_Address::bareAddress($val, $GLOBALS['session']->get('imp', 'maildomain'), true);
             $key_addr = array_pop($addrOb);
 
             /* Get the public key for the address. */
index 6e1d72a..e86bdec 100644 (file)
@@ -134,7 +134,7 @@ class IMP_Crypt_Smime extends Horde_Crypt_Smime
     protected function _encryptParameters($address)
     {
         /* We can only encrypt if we are sending to a single person. */
-        $addrOb = Horde_Mime_Address::bareAddress($address, $GLOBALS['session']['imp:maildomain'], true);
+        $addrOb = Horde_Mime_Address::bareAddress($address, $GLOBALS['session']->get('imp', 'maildomain'), true);
         $key_addr = array_pop($addrOb);
 
         $public_key = $this->getPublicKey($key_addr);
@@ -272,16 +272,20 @@ class IMP_Crypt_Smime extends Horde_Crypt_Smime
             return false;
         }
 
-        if (isset($session['imp:smime_passphrase'])) {
+        if ($session->exists('imp', 'smime_passphrase')) {
             $secret = $GLOBALS['injector']->getInstance('Horde_Secret');
-            return $secret->read($secret->getKey('imp'), $session['imp:smime_passphrase']);
-        } elseif (!isset($session['imp:smime_null_passphrase'])) {
-            $session['imp:smime_null_passphrase'] = $this->verifyPassphrase($private_key, null)
-                ? null
-                : false;
+            return $secret->read($secret->getKey('imp'), $session->get('imp', 'smime_passphrase'));
+        } elseif (!$session->exists('imp', 'smime_null_passphrase')) {
+            $session->set(
+                'imp',
+                'smime_null_passphrase',
+                $this->verifyPassphrase($private_key, null)
+                    ? null
+                    : false
+            );
         }
 
-        return $session['imp:smime_null_passphrase'];
+        return $session->get('imp', 'smime_null_passphrase');
     }
 
     /**
@@ -298,7 +302,7 @@ class IMP_Crypt_Smime extends Horde_Crypt_Smime
         }
 
         $secret = $GLOBALS['injector']->getInstance('Horde_Secret');
-        $GLOBALS['session']['imp:smime_passphrase'] = $secret->write($secret->getKey('imp'), $passphrase);
+        $GLOBALS['session']->set('imp', 'smime_passphrase', $secret->write($secret->getKey('imp'), $passphrase));
 
         return true;
     }
@@ -310,7 +314,8 @@ class IMP_Crypt_Smime extends Horde_Crypt_Smime
     {
         global $session;
 
-        unset($session['imp:smime_null_passphrase'], $session['imp:smime_passphrase']);
+        $session->remove('imp', 'smime_null_passphrase');
+        $session->remove('imp', 'smime_passphrase');
     }
 
     /**
index 5ac137c..b9affce 100644 (file)
@@ -33,7 +33,7 @@ class IMP_Filter
      */
     public function filter($mbox)
     {
-        if (!$GLOBALS['session']['imp:filteravail']) {
+        if (!$GLOBALS['session']->get('imp', 'filteravail')) {
             return;
         }
 
index f6d4e29..257e46e 100644 (file)
@@ -89,7 +89,7 @@ class IMP
      */
     static public function getViewMode()
     {
-        return ($view = $GLOBALS['session']['imp:view'])
+        return ($view = $GLOBALS['session']->get('imp', 'view'))
             ? $view
             : 'imp';
     }
@@ -426,7 +426,7 @@ class IMP
     {
         $t = $GLOBALS['injector']->createInstance('Horde_Template');
         $t->set('forminput', Horde_Util::formInput());
-        $t->set('use_folders', ($GLOBALS['session']['imp:protocol'] != 'pop') && $GLOBALS['conf']['user']['allow_folders'], true);
+        $t->set('use_folders', ($GLOBALS['session']->get('imp', 'protocol') != 'pop') && $GLOBALS['conf']['user']['allow_folders'], true);
         if ($t->get('use_folders')) {
             Horde::addScriptFile('imp.js', 'imp');
             $menu_view = $GLOBALS['prefs']->getValue('menu_view');
@@ -480,7 +480,7 @@ class IMP
      */
     static public function quotaData($long = true)
     {
-        if (!$GLOBALS['session']['imp:imap_quota']) {
+        if (!$GLOBALS['session']->get('imp', 'imap_quota')) {
             return false;
         }
 
@@ -518,7 +518,7 @@ class IMP
             $ret['percent'] = sprintf("%.2f", $ret['percent']);
         } else {
             // Hide unlimited quota message?
-            if ($GLOBALS['session']['imp:quota_hide_when_unlimited']) {
+            if ($GLOBALS['session']->get('imp', 'quota_hide_when_unlimited')) {
                 return false;
             }
 
@@ -756,7 +756,7 @@ class IMP
         /* Restrict POP3 sorting to sequence only.  Although possible to
          * abstract other sorting methods, all other methods require a
          * download of all messages, which is too much overhead.*/
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             $ob['by'] = Horde_Imap_Client::SORT_SEQUENCE;
             return $ob;
         }
@@ -809,7 +809,7 @@ class IMP
          * Horde_Imap_Client_Socket has a built-in ORDEREDSUBJECT
          * implementation. We will always prefer REFERENCES, but will fallback
          * to ORDEREDSUBJECT if the server doesn't support THREAD sorting. */
-        return (($GLOBALS['session']['imp:protocol'] == 'imap') &&
+        return (($GLOBALS['session']->get('imp', 'protocol') == 'imap') &&
                 !$GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mbox));
     }
 
@@ -972,7 +972,7 @@ class IMP
             $t->set('folders', $folders);
 
             $imp_search = $GLOBALS['injector']->getInstance('IMP_Search');
-            if (($GLOBALS['session']['imp:protocol'] != 'pop') &&
+            if (($GLOBALS['session']->get('imp', 'protocol') != 'pop') &&
                 ($vinbox = $imp_search['vinbox']) &&
                 $vinbox->enabled) {
                 $t->set('vinbox', self::generateIMPUrl('mailbox.php', strval($vinbox))->link());
index 4505122..abdc61e 100644 (file)
@@ -74,7 +74,7 @@ class IMP_Imap
     {
         /* Only need to serialize object once a session. */
         if ($this->ob) {
-            $GLOBALS['session']['imp:imap_ob/' . $this->_serverkey] = $this->ob;
+            $GLOBALS['session']->set('imp', 'imap_ob/' . $this->_serverkey, $this->ob);
         }
     }
 
@@ -93,7 +93,7 @@ class IMP_Imap
         }
 
         try {
-            if (!($this->ob = $GLOBALS['session']['imp:imap_ob/' . $this->_serverkey])) {
+            if (!($this->ob = $session->get('imp', 'imap_ob/' . $this->_serverkey))) {
                 return false;
             }
         } catch (Exception $e) {
@@ -102,7 +102,7 @@ class IMP_Imap
             throw new IMP_Exception(_("Could not acquire mail server credentials from the session."));
         }
 
-        $this->_postcreate($session['imp:protocol']);
+        $this->_postcreate($session->get('imp', 'protocol'));
 
         return true;
     }
@@ -237,7 +237,7 @@ class IMP_Imap
             /* This check can only be done for regular IMAP mailboxes. */
             // TODO: POP3 also?
             if (!$res &&
-                ($GLOBALS['session']['imp:protocol'] == 'imap') &&
+                ($GLOBALS['session']->get('imp', 'protocol') == 'imap') &&
                 !$GLOBALS['injector']->getInstance('IMP_Search')->isSearchMbox($mailbox)) {
                 try {
                     $status = $this->ob->status($mailbox, Horde_Imap_Client::STATUS_UIDNOTSTICKY);
@@ -265,16 +265,14 @@ class IMP_Imap
         global $session;
 
         // TODO: POP3 also?
-        if ($session['imp:protocol'] == 'pop') {
+        if ($session->get('imp', 'protocol') == 'pop') {
             return;
         }
 
         if (!isset($this->_uidvalid[$mailbox])) {
             $status = $this->ob->status($mailbox, Horde_Imap_Client::STATUS_UIDVALIDITY);
-            $val = isset($session['imp:uidvalid/' . $mailbox])
-                ? $session['imp:uidvalid/' . $mailbox]
-                : null;
-            $session['imp:uidvalid/' . $mailbox] = $status['uidvalidity'];
+            $val = $session->get('imp', 'uidvalid/' . $mailbox);
+            $session->set('imp', 'uidvalid/' . $mailbox, $status['uidvalidity']);
 
             $this->_uidvalid[$mailbox] = (!is_null($val) && ($status['uidvalidity'] != $val));
         }
@@ -283,7 +281,7 @@ class IMP_Imap
             throw new IMP_Exception(_("Mailbox structure on server has changed."));
         }
 
-        return $session['imp:uidvalid/' . $mailbox];
+        return $session->get('imp', 'uidvalid/' . $mailbox);
     }
 
     /**
@@ -294,7 +292,7 @@ class IMP_Imap
     public function getNamespaceList()
     {
         try {
-            return $this->ob->getNamespaces($GLOBALS['session']['imp:imap_namespace;array']);
+            return $this->ob->getNamespaces($GLOBALS['session']->get('imp', 'imap_namespace', Horde_Session::TYPE_ARRAY));
         } catch (Horde_Imap_Client_Exception $e) {
             // @todo Error handling
             return array();
@@ -313,7 +311,7 @@ class IMP_Imap
      */
     public function getNamespace($mailbox = null, $personal = false)
     {
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             return null;
         }
 
@@ -343,7 +341,7 @@ class IMP_Imap
      */
     public function defaultNamespace()
     {
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             return null;
         }
 
index 9664510..d565dad 100644 (file)
@@ -37,11 +37,11 @@ class IMP_Imap_Acl
      */
     public function __construct()
     {
-        if ($GLOBALS['session']['imp:protocol'] != 'imap') {
+        if ($GLOBALS['session']->get('imp', 'protocol') != 'imap') {
             throw new IMP_Exception(_("ACL requires an IMAP server."));
         }
 
-        if (!$GLOBALS['session']['imp:imap_acl']) {
+        if (!$GLOBALS['session']->get('imp', 'imap_acl')) {
             throw new IMP_Exception(_("ACLs not configured for this server."));
         }
 
index c957560..d81d734 100644 (file)
@@ -329,7 +329,7 @@ class IMP_Imap_Flags
             }
         }
 
-        if ($GLOBALS['session']['imp:protocol'] == 'imap') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'imap') {
             $flaglist = empty($options['flags'])
                 ? array()
                 : array_map('strtolower', $options['flags']);
index 237b2ac..cba4d88 100644 (file)
@@ -164,7 +164,7 @@ class IMP_Imap_Tree implements ArrayAccess, Iterator, Serializable
      */
     public function __construct()
     {
-        if ($GLOBALS['session']['imp:protocol'] == 'imap') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'imap') {
             $ns = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->getNamespaceList();
             $ptr = reset($ns);
             $this->_delimiter = $ptr['delimiter'];
@@ -183,9 +183,9 @@ class IMP_Imap_Tree implements ArrayAccess, Iterator, Serializable
     {
         global $conf, $injector, $prefs, $session;
 
-        $unsubmode = (($session['imp:protocol'] == 'pop') ||
+        $unsubmode = (($session->get('imp', 'protocol') == 'pop') ||
                       !$prefs->getValue('subscribe') ||
-                      $session['imp:showunsub']);
+                      $session->get('imp', 'showunsub'));
 
         /* Reset class variables to the defaults. */
         $this->changed = true;
@@ -204,7 +204,7 @@ class IMP_Imap_Tree implements ArrayAccess, Iterator, Serializable
         /* Add INBOX and exit if folders aren't allowed or if we are using
          * POP3. */
         if (empty($conf['user']['allow_folders']) ||
-            ($session['imp:protocol'] == 'pop')) {
+            ($session->get('imp', 'protocol') == 'pop')) {
             $this->_insertElt($this->_makeElt('INBOX', self::ELT_IS_SUBSCRIBED));
             return;
         }
@@ -335,7 +335,7 @@ class IMP_Imap_Tree implements ArrayAccess, Iterator, Serializable
             ? $label
             : substr($label, $pos + 1);
 
-        if ($GLOBALS['session']['imp:protocol'] != 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') != 'pop') {
             try {
                 $this->_setInvisible($elt, !Horde::callHook('display_folder', array($elt['v']), 'imp'));
             } catch (Horde_Exception_HookNotSet $e) {}
index 0554cdd..0233160 100644 (file)
@@ -40,7 +40,7 @@ class IMP_Injector_Factory_AuthImap
             throw new IMP_Exception('No server parameters found.');
         }
 
-        $aparams = $GLOBALS['session']['imp:imap_admin;array'];
+        $aparams = $GLOBALS['session']->get('imp', 'imap_admin', Horde_Session::TYPE_ARRAY);
 
         $params = array_merge(
             $params,
index d9dba19..3b19517 100644 (file)
@@ -83,7 +83,7 @@ class IMP_Injector_Factory_Compose
     {
         global $session;
 
-        $cache = $session['imp:compose_cache:array'];
+        $cache = $session->get('imp', 'compose_cache', Horde_Session::TYPE_ARRAY);
         $changed = false;
 
         foreach ($this->_instances as $key => $val) {
@@ -105,7 +105,7 @@ class IMP_Injector_Factory_Compose
         }
 
         if ($changed) {
-            $GLOBALS['session']['imp:compose_cache'] = $cache;
+            $session->set('imp', 'compose_cache', $cache);
         }
     }
 
index 6461294..79e8e60 100644 (file)
@@ -44,7 +44,7 @@ class IMP_Injector_Factory_Imap
      */
     public function create($id = null)
     {
-        if (is_null($id) && !($id = $GLOBALS['session']['imp:server_key'])) {
+        if (is_null($id) && !($id = $GLOBALS['session']->get('imp', 'server_key'))) {
             $id = 'default';
         }
 
index 706ffeb..ca5ef14 100644 (file)
@@ -40,7 +40,7 @@ class IMP_Injector_Factory_Imaptree
 
         /* If an IMP_Imap_Tree object is currently stored in the cache,
          * re-create that object.  Else, create a new instance. */
-        if (isset($session['imp:treeob'])) {
+        if ($session->exists('imp', 'treeob')) {
             /* Since IMAP tree generation is so expensive/time-consuming,
              * fallback to storing in the session even if no permanent cache
              * backend is setup. */
@@ -49,13 +49,13 @@ class IMP_Injector_Factory_Imaptree
                 $instance = $session[Horde_Session::DATA . ':imp_imaptree'];
             } else {
                 try {
-                    $instance = @unserialize($cache->get($session['imp:treeob'], 86400));
+                    $instance = @unserialize($cache->get($session->get('imp', 'treeob'), 86400));
                 } catch (Exception $e) {
                     Horde::logMessage('Could not unserialize stored IMP_Imap_Tree object.', 'DEBUG');
                 }
             }
         } else {
-            $session['imp:treeob'] = strval(new Horde_Support_Randomid());
+            $session->set('imp', 'treeob', strval(new Horde_Support_Randomid()));
         }
 
         if (!($instance instanceof IMP_Imap_Tree)) {
@@ -83,7 +83,7 @@ class IMP_Injector_Factory_Imaptree
             if ($cache instanceof Horde_Cache_Null) {
                 $session->store($instance, true, 'imp_imaptree');
             } else {
-                $cache->set($GLOBALS['session']['imp:treeob'], serialize($instance), 86400);
+                $cache->set($GLOBALS['session']->get('imp', 'treeob'), serialize($instance), 86400);
             }
         }
     }
index 96fd7ff..39ab5a5 100644 (file)
@@ -42,7 +42,7 @@ class IMP_Injector_Factory_Mail
 
         /* Force the SMTP host and port value to the current SMTP server if
          * one has been selected for this connection. */
-        $params = array_merge($params, $GLOBALS['session']['imp:smtp;array']);
+        $params = array_merge($params, $GLOBALS['session']->get('imp', 'smtp', Horde_Session::TYPE_ARRAY));
 
         /* If SMTP authentication has been requested, use either the username
          * and password provided in the configuration or populate the username
index c0d7b0f..1c10969 100644 (file)
@@ -68,7 +68,7 @@ class IMP_Injector_Factory_MailboxList
             case 'imp':
             case 'mimp':
                 try {
-                    $ob = $GLOBALS['session']['imp:imp_mailbox/' . $mailbox];
+                    $ob = $GLOBALS['session']->get('imp', 'imp_mailbox/' . $mailbox);
                 } catch (Exception $e) {
                     $ob = null;
                 }
@@ -107,7 +107,7 @@ class IMP_Injector_Factory_MailboxList
              * unseen flag). */
             foreach ($this->_instances as $key => $val) {
                 if ($val->changed) {
-                    $GLOBALS['session']['imp:imp_mailbox/' . $key] = $val;
+                    $GLOBALS['session']->set('imp', 'imp_mailbox/' . $key, $val);
                 }
             }
         }
index bdd8a69..f5f6c26 100644 (file)
@@ -35,7 +35,7 @@ class IMP_Injector_Factory_Quota
      */
     public function create(Horde_Injector $injector)
     {
-        $qparams = $GLOBALS['session']['imp:imap_quota'];
+        $qparams = $GLOBALS['session']->get('imp', 'imap_quota');
 
         if (!isset($qparams['driver'])) {
             throw new IMP_Exception('Quota config missing driver parameter.');
index 363ea9b..17bcaea 100644 (file)
@@ -35,7 +35,7 @@ class IMP_Injector_Factory_Search
     public function create(Horde_Injector $injector)
     {
         try {
-            $instance = $GLOBALS['session']['imp:search'];
+            $instance = $GLOBALS['session']->get('imp', 'search');
         } catch (Exception $e) {
             Horde::logMessage('Could not unserialize stored IMP_Search object.', 'DEBUG');
             $instance = null;
@@ -59,7 +59,7 @@ class IMP_Injector_Factory_Search
     {
         /* Only need to store the object if the object has changed. */
         if ($instance->changed) {
-            $GLOBALS['session']['imp:search'] = $instance;
+            $GLOBALS['session']->set('imp', 'search', $instance);
         }
     }
 
index 8520258..b4062d7 100644 (file)
@@ -271,7 +271,7 @@ class IMP_Mailbox_List implements Countable, Serializable
                 $threadob = $this->getThreadOb();
                 $this->_sorted = $threadob->messageList((bool)$sortpref['dir']);
             } else {
-                if (($GLOBALS['session']['imp:protocol'] != 'pop') &&
+                if (($GLOBALS['session']->get('imp', 'protocol') != 'pop') &&
                     IMP::hideDeletedMsgs($this->_mailbox)) {
                     $query = new Horde_Imap_Client_Search_Query();
                     $query->flag('\\deleted', false);
@@ -410,8 +410,8 @@ class IMP_Mailbox_List implements Countable, Serializable
                     $page = ceil($start / $page_size);
                 } else {
                     /* Search for the last visited page first. */
-                    if (isset($GLOBALS['session']['imp:mbox_page/' . $this->_mailbox])) {
-                        $page = $GLOBALS['session']['imp:mbox_page/' . $this->_mailbox];
+                    if ($GLOBALS['session']->exists('imp', 'mbox_page/' . $this->_mailbox)) {
+                        $page = $GLOBALS['session']->get('imp', 'mbox_page/' . $this->_mailbox);
                     } elseif ($this->_searchmbox) {
                         $page = 1;
                     } else {
@@ -456,7 +456,7 @@ class IMP_Mailbox_List implements Countable, Serializable
         }
 
         /* Store the page value now. */
-        $GLOBALS['session']['imp:mbox_page/' . $this->_mailbox] = $ret['page'];
+        $GLOBALS['session']->set('imp', 'mbox_page/' . $this->_mailbox, $ret['page']);
 
         return $ret;
     }
@@ -521,7 +521,7 @@ class IMP_Mailbox_List implements Countable, Serializable
     {
         if (is_null($this->_threadob)) {
             try {
-                $this->_threadob = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->thread($this->_mailbox, array('criteria' => $GLOBALS['session']['imp:imap_thread']));
+                $this->_threadob = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create()->thread($this->_mailbox, array('criteria' => $GLOBALS['session']->get('imp', 'imap_thread')));
             } catch (Horde_Imap_Client_Exception $e) {
                 $GLOBALS['notification']->push($e);
                 return new Horde_Imap_Client_Thread(array(), 'uid');
index 6569775..e7701fd 100644 (file)
@@ -32,7 +32,7 @@ class IMP_Message
      */
     public function __construct()
     {
-        if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+        if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
             $this->_usepop = true;
         }
     }
index 9be8de0..4e9ad6d 100644 (file)
@@ -78,7 +78,7 @@ class IMP_Mime_Viewer_Html extends Horde_Mime_Viewer_Html
         $data = $this->_IMPrender(true);
 
         /* Catch case where using mimp on a javascript browser. */
-        if ($GLOBALS['session']['imp:view'] != 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') != 'mimp') {
             $uid = strval(new Horde_Support_Randomid());
 
             Horde::addScriptFile('imp.js', 'imp');
@@ -136,7 +136,7 @@ class IMP_Mime_Viewer_Html extends Horde_Mime_Viewer_Html
 
         /* Don't do IMP DOM processing if in mimp mode or converting to
          * text. */
-        if (($GLOBALS['session']['imp:view'] == 'mimp') ||
+        if (($GLOBALS['session']->get('imp', 'view') == 'mimp') ||
             (!$inline && Horde_Util::getFormData('convert_text'))) {
             $this->_imptmp = null;
         } else {
@@ -173,7 +173,7 @@ class IMP_Mime_Viewer_Html extends Horde_Mime_Viewer_Html
 
         /* Sanitize the HTML. */
         $data = $this->_cleanHTML($data, array(
-            'noprefetch' => ($inline && ($GLOBALS['session']['imp:view'] != 'mimp')),
+            'noprefetch' => ($inline && ($GLOBALS['session']->get('imp', 'view') != 'mimp')),
             'phishing' => $inline
         ));
 
index 13902aa..1802a3a 100644 (file)
@@ -419,7 +419,7 @@ class IMP_Mime_Viewer_Itip extends Horde_Mime_Viewer_Base
         }
 
         // Create the HTML to display the iCal file.
-        if (!$full && ($GLOBALS['session']['imp:view'] != 'imp')) {
+        if (!$full && ($GLOBALS['session']->get('imp', 'view') != 'imp')) {
             $url = $this->getConfigParam('imp_contents')->urlView($this->_mimepart, 'view_attach', array('params' => array('ajax' => 1, 'mode' => IMP_Contents::RENDER_INLINE)));
             $onsubmit = ' onsubmit="DimpCore.submitForm(\'impMimeViewerItip\');return false"';
         } else {
index a459cd4..c9bc780 100644 (file)
@@ -394,7 +394,7 @@ class IMP_Mime_Viewer_Pgp extends Horde_Mime_Viewer_Base
                 ? 'mimePartWrapValid'
                 : 'mimePartWrapInvalid';
         } else {
-            switch ($GLOBALS['session']['imp:view']) {
+            switch ($GLOBALS['session']->get('imp', 'view')) {
             case 'imp':
                 $status[] = Horde::link(IMP::selfUrl()->add(array('pgp_verify_msg' => 1))) . _("Click HERE to verify the message.") . '</a>';
                 break;
index a105869..02c2c8c 100644 (file)
@@ -98,7 +98,7 @@ class IMP_Mime_Viewer_Plain extends Horde_Mime_Viewer_Plain
         $text = IMP::filterText($text);
 
         /* Done processing if in mimp mode. */
-        if ($GLOBALS['session']['imp:view'] == 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') == 'mimp') {
             return array(
                 $mime_id => array(
                     'data' => $text,
index b63310e..75a2bfc 100644 (file)
@@ -310,7 +310,7 @@ class IMP_Mime_Viewer_Smime extends Horde_Mime_Viewer_Base
                 $status[] = $e->getMessage();
             }
         } else {
-            switch ($GLOBALS['session']['imp:view']) {
+            switch ($GLOBALS['session']->get('imp', 'view')) {
             case 'imp':
                 $status[] = Horde::link(IMP::selfUrl()->add('smime_verify_msg', 1)) . _("Click HERE to verify the data.") . '</a>';
                 break;
index 212bb68..ed05c56 100644 (file)
@@ -127,7 +127,7 @@ class Imp_Prefs_Identity extends Horde_Core_Prefs_Identity
         }
 
         try {
-            $ob = Horde_Mime_Address::parseAddressList($address, array('defserver' => $GLOBALS['session']['imp:maildomain']));
+            $ob = Horde_Mime_Address::parseAddressList($address, array('defserver' => $GLOBALS['session']->get('imp', 'maildomain')));
         } catch (Horde_Mime_Exception $e) {
             throw new Horde_Exception (_("Your From address is not a valid email address. This can be fixed in your Personal Information preferences page."));
         }
@@ -207,7 +207,7 @@ class Imp_Prefs_Identity extends Horde_Core_Prefs_Identity
             }
 
             if (!strstr($val, '@')) {
-                $val .= '@' . $GLOBALS['session']['imp:maildomain'];
+                $val .= '@' . $GLOBALS['session']->get('imp', 'maildomain');
             }
 
             $this->_cached['fromList'][$ident] = $val;
index 6307925..2b2bb0f 100644 (file)
@@ -51,7 +51,7 @@ class IMP_Prefs_Ui
             break;
 
         case 'delmove':
-            if ($GLOBALS['session']['imp:protocol'] == 'pop') {
+            if ($GLOBALS['session']->get('imp', 'protocol') == 'pop') {
                 $tmp = $ui->prefs['delete_spam_after_report']['enum'];
                 unset($tmp[2]);
                 $ui->override['delete_spam_after_report'] = $tmp;
@@ -69,7 +69,7 @@ class IMP_Prefs_Ui
     {
         global $conf, $prefs, $registry, $session;
 
-        $pop3 = ($session['imp:protocol'] == 'pop');
+        $pop3 = ($session->get('imp', 'protocol') == 'pop');
 
         switch ($ui->group) {
         case 'accounts':
@@ -147,7 +147,7 @@ class IMP_Prefs_Ui
             break;
 
         case 'filters':
-            if (!$session['imp:filteravail']) {
+            if (!$session->get('imp', 'filteravail')) {
                 $ui->suppress[] = 'filter_on_login';
                 $ui->suppress[] = 'filter_on_display';
                 $ui->suppress[] = 'filter_any_mailbox';
@@ -181,7 +181,7 @@ class IMP_Prefs_Ui
             }
 
             if ($prefs->isLocked('signature_html') ||
-                !$session['imp:rteavail']) {
+                !$session->get('imp', 'rteavail')) {
                 $ui->suppress[] = 'signature_html_select';
             } else {
                 Horde::addScriptFile('signaturehtml.js', 'imp');
@@ -542,7 +542,7 @@ class IMP_Prefs_Ui
                 $maildomain = preg_replace('/[^-\.a-z0-9]/i', '', $prefs->getValue('mail_domain'));
                 $prefs->setValue('maildomain', $maildomain);
                 if (!empty($maildomain)) {
-                    $session['imp:maildomain'] = $maildomain;
+                    $session->set('imp', 'maildomain', $maildomain);
                 }
             }
             break;
@@ -555,9 +555,13 @@ class IMP_Prefs_Ui
 
         case 'dimp':
             if ($prefs->isDirty('dynamic_view')) {
-                $session['imp:view'] = $prefs->getValue('dynamic_view')
-                    ? 'dimp'
-                    : ($GLOBALS['browser']->isMobile() ? 'mimp' : 'imp');
+                $session->set(
+                    'imp',
+                    'view',
+                    $prefs->getValue('dynamic_view')
+                        ? 'dimp'
+                        : ($GLOBALS['browser']->isMobile() ? 'mimp' : 'imp')
+                );
             }
             break;
 
@@ -752,7 +756,7 @@ class IMP_Prefs_Ui
 
         $t->set('canedit', $canEdit);
 
-        if ($GLOBALS['session']['imp:imap_admin']) {
+        if ($GLOBALS['session']->get('imp', 'imap_admin')) {
             $current_users = array_keys($curr_acl);
             $new_user = array();
 
@@ -1147,7 +1151,7 @@ class IMP_Prefs_Ui
                     '$("create_pgp_key").observe("click", function(e) { if (!window.confirm(' . Horde_Serialize::serialize(_("Key generation may take a long time to complete.  Continue with key generation?"), Horde_Serialize::JSON, 'UTF-8') . ')) { e.stop(); } })'
                 ), 'dom');
 
-                if ($GLOBALS['session']['imp:file_upload']) {
+                if ($GLOBALS['session']->get('imp', 'file_upload')) {
                     Horde::addInlineScript(array(
                         '$("import_pgp_personal").observe("click", function(e) { ' . Horde::popupJs($pgp_url, array('params' => array('actionID' => 'import_personal_public_key', 'reload' => $GLOBALS['session']->store($ui->selfUrl()->setRaw(true), false)), 'height' => 275, 'width' => 750, 'urlencode' => true)) . '; e.stop(); })'
                     ), 'dom');
@@ -1246,7 +1250,7 @@ class IMP_Prefs_Ui
             $t->set('pubkey_list', $plist);
         }
 
-        if ($GLOBALS['session']['imp:file_upload']) {
+        if ($GLOBALS['session']->get('imp', 'file_upload')) {
             $t->set('can_import', true);
             $t->set('no_source', !$GLOBALS['prefs']->getValue('add_source'));
             if (!$t->get('no_source')) {
@@ -1527,7 +1531,7 @@ class IMP_Prefs_Ui
                 Horde::addInlineScript(array(
                     '$("delete_smime_personal").observe("click", function(e) { if (!window.confirm(' . Horde_Serialize::serialize(_("Are you sure you want to delete your keypair? (This is NOT recommended!)"), Horde_Serialize::JSON, 'UTF-8') . ')) { e.stop(); } })'
                 ), 'dom');
-            } elseif ($GLOBALS['session']['imp:file_upload']) {
+            } elseif ($GLOBALS['session']->get('imp', 'file_upload')) {
                 $t->set('import-cert-help', Horde_Help::link('imp', 'smime-import-personal-certs'));
 
                 Horde::addInlineScript(array(
@@ -1598,7 +1602,7 @@ class IMP_Prefs_Ui
             $t->set('pubkey_list', $plist);
         }
 
-        if ($GLOBALS['session']['imp:file_upload']) {
+        if ($GLOBALS['session']->get('imp', 'file_upload')) {
             $t->set('can_import', true);
             $t->set('no_source', !$GLOBALS['prefs']->getValue('add_source'));
             if (!$t->get('no_source')) {
@@ -1704,7 +1708,7 @@ class IMP_Prefs_Ui
 
         if (isset($data['sources'])) {
             $prefs->setValue('search_sources', $data['sources']);
-            unset($GLOBALS['session']['imp:ac_ajax']);
+            $GLOBALS['session']->remove('imp', 'ac_ajax');
             $updated = true;
         }
 
index b8e6f2a..fb7721d 100644 (file)
@@ -46,7 +46,7 @@ class IMP_Quota_Mdaemon extends IMP_Quota_Base
         $imap_ob = $GLOBALS['injector']->getInstance('IMP_Injector_Factory_Imap')->create();
         $userDetails = $this->_getUserDetails(
             $this->_params['username'],
-            $GLOBALS['session']['imp:maildomain']
+            $GLOBALS['session']->get('imp', 'maildomain')
         );
 
         if ($userDetails !== false) {
index 9de1b5d..71f4db9 100644 (file)
@@ -163,7 +163,7 @@ class IMP_Search implements ArrayAccess, Iterator, Serializable
          * Although there is a fallback to a PHP-based display sort, for
          * performance reasons only do a display sort if it is supported
          * on the server. */
-        if (($GLOBALS['session']['imp:protocol'] == 'imap') &&
+        if (($GLOBALS['session']->get('imp', 'protocol') == 'imap') &&
             !empty($opts['sort'])) {
             $sort_cap = $imp_imap->queryCapability('SORT');
 
index 3722950..51651e9 100644 (file)
@@ -48,7 +48,7 @@ abstract class IMP_Sentmail_Base
         }
 
         foreach ($recipients as $addresses) {
-            $addresses = Horde_Mime_Address::bareAddress($addresses, $GLOBALS['session']['imp:maildomain'], true);
+            $addresses = Horde_Mime_Address::bareAddress($addresses, $GLOBALS['session']->get('imp', 'maildomain'), true);
             foreach ($addresses as $recipient) {
                 $this->_log($action, $message_id, $recipient, $success);
             }
index f21a95b..9cfffa9 100644 (file)
@@ -119,7 +119,7 @@ class IMP_Tree_Flist extends Horde_Tree_Select
 
         /* Add the list of editable tasklists to the list. */
         if ($this->getOption('inc_tasklists') &&
-            $GLOBALS['session']['imp:tasklistavail']) {
+            $GLOBALS['session']->get('imp', 'tasklistavail')) {
             try {
                 $tasklists = $registry->call('tasks/listTasklists', array(false, Horde_Perms::EDIT));
 
@@ -138,7 +138,7 @@ class IMP_Tree_Flist extends Horde_Tree_Select
 
         /* Add the list of editable notepads to the list. */
         if ($this->getOption('inc_notepads') &&
-            $GLOBALS['session']['imp:notepadavail']) {
+            $GLOBALS['session']->get('imp', 'notepadavail')) {
             try {
                 $notepads = $registry->call('notes/listNotepads', array(false, Horde_Perms::EDIT));
 
index db5d01d..6342a6a 100644 (file)
@@ -49,7 +49,7 @@ class IMP_Ui_Block
         foreach ($poll as $folder) {
             if (isset($status[$folder]) &&
                 (($folder == 'INBOX') ||
-                 ($GLOBALS['session']['imp:protocol'] != 'pop')) &&
+                 ($GLOBALS['session']->get('imp', 'protocol') != 'pop')) &&
                 (empty($this->_params['show_unread']) ||
                  !empty($status[$folder]['unseen']))) {
                 if (!empty($status[$folder]['recent'])) {
index 66ce235..19573d1 100644 (file)
@@ -320,7 +320,7 @@ class IMP_Ui_Message
 
         $add_link = null;
         $addr_array = array();
-        $mimp_view = ($GLOBALS['session']['imp:view'] == 'mimp');
+        $mimp_view = ($GLOBALS['session']->get('imp', 'view') == 'mimp');
 
         /* Set up the add address icon link if contact manager is
          * available. */
@@ -389,7 +389,7 @@ class IMP_Ui_Message
             }
         }
 
-        if ($GLOBALS['session']['imp:view'] == 'mimp') {
+        if ($GLOBALS['session']->get('imp', 'view') == 'mimp') {
             return implode(', ', $addr_array);
         }
 
@@ -653,7 +653,7 @@ class IMP_Ui_Message
      */
     public function moveAfterAction()
     {
-        return (($GLOBALS['session']['imp:protocol'] != 'pop') &&
+        return (($GLOBALS['session']->get('imp', 'protocol') != 'pop') &&
                 !IMP::hideDeletedMsgs(IMP::$mailbox) &&
                 !$GLOBALS['prefs']->getValue('use_trash'));
     }
index fb8b1ca..3919e01 100644 (file)
@@ -75,7 +75,7 @@ class IMP_Views_Compose
                 $result['js'][] = 'DIMP.conf_compose.qreply = 1';
             }
 
-            if ($GLOBALS['session']['imp:rteavail']) {
+            if ($GLOBALS['session']->get('imp', 'rteavail')) {
                 $t->set('compose_html', $prefs->getValue('compose_html'));
                 $t->set('rte', true);
 
index 46f685b..8d16593 100644 (file)
@@ -100,7 +100,7 @@ class IMP_Views_ListMessages
 
         /* Run filters now. */
         if (!$is_search &&
-            $GLOBALS['session']['imp:filteravail'] &&
+            $GLOBALS['session']->get('imp', 'filteravail') &&
             !empty($args['applyfilter']) ||
             (($mbox == 'INBOX') &&
              $GLOBALS['prefs']->getValue('filter_on_display'))) {
@@ -409,7 +409,7 @@ class IMP_Views_ListMessages
         while (list(,$ob) = each($overview['overview'])) {
             /* Initialize the header fields. */
             $msg = array(
-                'imapuid' => (($GLOBALS['session']['imp:protocol'] == 'pop') ? $ob['uid'] : intval($ob['uid'])),
+                'imapuid' => (($GLOBALS['session']->get('imp', 'protocol') == 'pop') ? $ob['uid'] : intval($ob['uid'])),
                 'view' => $ob['mailbox'],
             );
 
index 8af14cc..11d2780 100644 (file)
@@ -110,7 +110,7 @@ case 's':
 
 // 'rs' = run search
 case 'rs':
-    if (!empty($vars->search) && ($session['imp:protocol'] == 'imap')) {
+    if (!empty($vars->search) && ($session->get('imp', 'protocol') == 'imap')) {
         /* Create the search query and reset the global mailbox variable. */
         $q_ob = $imp_search->createQuery(
             array(new IMP_Search_Element_Text($vars->search, false)),
@@ -244,7 +244,7 @@ if (!$search_mbox && IMP::threadSortAvailable(IMP::$mailbox)) {
 }
 
 /* Add search link. */
-if ($session['imp:protocol'] == 'imap') {
+if ($session->get('imp', 'protocol') == 'imap') {
     if ($search_mbox) {
         $orig_mbox = reset($imp_search[IMP::$mailbox]->mboxes);
         $menu[] = array(sprintf(_("New Search in %s"), IMP::getLabel($orig_mbox)), IMP::generateIMPUrl('mailbox-mimp.php', $orig_mbox)->add('a', 's'));
index 8667a64..65d092c 100644 (file)
@@ -202,7 +202,7 @@ case 'view_messages':
 $mailbox_token = Horde::getRequestToken('imp.mailbox');
 
 /* Deal with filter options. */
-if (!$readonly && $session['imp:filteravail']) {
+if (!$readonly && $session->get('imp', 'filteravail')) {
     /* Only allow filter on display for INBOX. */
     if ((IMP::$mailbox == 'INBOX') &&
         $prefs->getValue('filter_on_display')) {
@@ -391,7 +391,7 @@ if (isset($filter_url)) {
     $hdr_template->set('filter_img', Horde::img('filters.png', _("Apply Filters")));
 }
 $hdr_template->set('search', false);
-if ($session['imp:protocol'] != 'pop') {
+if ($session->get('imp', 'protocol') != 'pop') {
     $hdr_template->set('search_img', Horde::img('search.png', _("Search")));
 
     if (!$search_mbox) {
@@ -470,7 +470,7 @@ if ($pageOb['msgcount']) {
     $n_template->set('sessiontag', Horde_Util::formInput());
     $n_template->set('use_folders', $conf['user']['allow_folders']);
     $n_template->set('readonly', $readonly);
-    $n_template->set('use_pop', $session['imp:protocol'] == 'pop');
+    $n_template->set('use_pop', $session->get('imp', 'protocol') == 'pop');
 
     if (!$n_template->get('use_pop')) {
         $tmp = $imp_flags->getFlagList($search_mbox ? null : IMP::$mailbox);
index 43dc51b..4f2d433 100644 (file)
@@ -114,7 +114,7 @@ try {
 $envelope = $fetch_ret[$uid]['envelope'];
 $flags = $flags_ret[$uid]['flags'];
 $mime_headers = reset($fetch_ret[$uid]['headertext']);
-$use_pop = ($session['imp:protocol'] == 'pop');
+$use_pop = ($session->get('imp', 'protocol') == 'pop');
 
 /* Parse the message. */
 try {
index bf80b7e..6ab8b38 100644 (file)
@@ -241,7 +241,7 @@ if (is_null($fetch_ret) || !isset($fetch_ret[$uid]['headertext'])) {
 $envelope = $fetch_ret[$uid]['envelope'];
 $flags = $flags_ret[$uid]['flags'];
 $mime_headers = reset($fetch_ret[$uid]['headertext']);
-$use_pop = ($session['imp:protocol'] == 'pop');
+$use_pop = ($session->get('imp', 'protocol') == 'pop');
 
 /* Get the title/mailbox label of the mailbox page. */
 $page_label = IMP::getLabel(IMP::$mailbox);
index 61326cb..c2af2bc 100644 (file)
@@ -19,11 +19,11 @@ Horde_Registry::appInit('imp', array(
 ));
 
 /* This is an IMP-only script. */
-if ($session['imp:view'] != 'imp') {
+if ($session->get('imp', 'view') != 'imp') {
     exit;
 }
 
-if ($session['imp:protocol'] == 'pop') {
+if ($session->get('imp', 'protocol') == 'pop') {
     $notification->push(_("Searching is not available with a POP3 server."), 'horde.error');
     $from_message_page = true;
     $actionID = $start = null;
index 5851992..3973283 100644 (file)
@@ -135,7 +135,7 @@ $constants = array(
 /* Load basic search if javascript is not enabled or searching is not allowed
  * (basic page will do the required redirection in the latter case). */
 if (!$browser->hasFeature('javascript') ||
-    ($session['imp:protocol'] == 'pop')) {
+    ($session->get('imp', 'protocol') == 'pop')) {
     require IMP_BASE . '/search-basic.php';
     exit;
 }
@@ -144,7 +144,7 @@ $imp_flags = $injector->getInstance('IMP_Imap_Flags');
 $imp_search = $injector->getInstance('IMP_Search');
 $vars = Horde_Variables::getDefaultVariables();
 
-$dimp_view = ($session['imp:view'] == 'dimp');
+$dimp_view = ($session->get('imp', 'view') == 'dimp');
 $js_vars = array();
 $search_mailbox = isset($vars->search_mailbox)
     ? $vars->search_mailbox
@@ -332,7 +332,7 @@ $js_vars['ImpSearch.selected'] = array($search_mailbox);
 $t = $injector->createInstance('Horde_Template');
 $t->setOption('gettext', true);
 $t->set('action', Horde::url('search.php'));
-$t->set('virtualfolder', $session['imp:protocol'] != 'pop');
+$t->set('virtualfolder', $session->get('imp', 'protocol') != 'pop');
 
 /* Determine if we are editing a search query. */
 if ($vars->edit_query && $imp_search->isSearchMbox($vars->edit_query)) {
index f342fc7..5fe0238 100644 (file)
@@ -15,7 +15,7 @@ $has_blacklist = $registry->hasMethod('mail/blacklistFrom');
 $has_whitelist = $registry->hasMethod('mail/whitelistFrom');
 
 // Quota information
-$show_quota = $session['imp:imap_quota'];
+$show_quota = $session->get('imp', 'imap_quota');
 
 // Get application folders list.
 $application_folders = array();
@@ -60,7 +60,7 @@ function _simpleButton($id, $text, $image, $nodisplay = false)
     <?php echo _simpleButton('composelink', _("_New Message"), 'dimpactionCompose') ?>
     <?php echo _simpleButton('checkmaillink', _("_Get Mail"), 'dimpactionCheckmail') ?>
     <?php echo _simpleButton('alertsloglink', _("Alerts _Log"), 'infoIcon') ?>
-<?php if ($session['imp:filteravail']): ?>
+<?php if ($session->get('imp', 'filteravail')): ?>
     <?php echo _simpleButton('applyfilterlink', _("Apply Filters"), 'filtersIcon') ?>
 <?php endif; ?>
    </ul>
@@ -110,7 +110,7 @@ function _simpleButton($id, $text, $image, $nodisplay = false)
      </ul>
     </div>
 <?php endif; ?>
-<?php if ($session['imp:protocol'] != 'pop'): ?>
+<?php if ($session->get('imp', 'protocol') != 'pop'): ?>
     <div class="sepfull"></div>
     <ul class="folderlist" id="normalfolders">
      <li class="folder" id="folderopts">
@@ -169,7 +169,7 @@ function _simpleButton($id, $text, $image, $nodisplay = false)
      </div>
 
      <div class="dimpActions">
-<?php if ($session['imp:protocol'] != 'pop'): ?>
+<?php if ($session->get('imp', 'protocol') != 'pop'): ?>
       <div id="qsearch">
        <span id="qsearch_icon"></span>
        <form action="#" method="post">
@@ -491,7 +491,7 @@ function _simpleButton($id, $text, $image, $nodisplay = false)
  <a id="ctx_mboxsort_none"><?php echo _("Clear Sort") ?></a>
 </div>
 
-<?php if ($session['imp:protocol'] != 'pop'): ?>
+<?php if ($session->get('imp', 'protocol') != 'pop'): ?>
 <div class="context" id="ctx_qsearchopts" style="display:none">
  <a id="ctx_qsearchopts_by"><?php echo _("Search By") ?></a>
  <div class="sep"></div>
index 06a2a3c..0b98687 100644 (file)
@@ -81,7 +81,7 @@ $code['conf'] = array_filter(array(
     'login_view' => $GLOBALS['prefs']->getValue('dimp_login_view'),
     'mbox_expand' => intval($GLOBALS['prefs']->getValue('nav_expanded') == 2),
     'name' => $GLOBALS['registry']->get('name', 'imp'),
-    'pop3' => intval($GLOBALS['session']['imp:protocol'] == 'pop'),
+    'pop3' => intval($GLOBALS['session']->get('imp', 'protocol') == 'pop'),
     'popup_height' => 610,
     'popup_width' => 820,
     'preview_pref' => $GLOBALS['prefs']->getValue('dimp_show_preview'),
index 027345b..786c3b8 100644 (file)
@@ -11,7 +11,7 @@
 $code = array(
 /* Variables used in core javascript files. */
     'conf' => array(
-        'pop3' => intval($GLOBALS['session']['imp:protocol'] == 'pop'),
+        'pop3' => intval($GLOBALS['session']->get('imp', 'protocol') == 'pop'),
         'fixed_folders' => empty($GLOBALS['conf']['server']['fixed_folders'])
             ? array()
             : $GLOBALS['conf']['server']['fixed_folders'],