Provide basic checking to prevent switching between mimp/imp/dimp during session
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 9 Feb 2010 05:16:49 +0000 (22:16 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 9 Feb 2010 05:16:49 +0000 (22:16 -0700)
imp/compose-dimp.php
imp/compose-mimp.php
imp/folders-mimp.php
imp/index-dimp.php
imp/lib/Application.php
imp/mailbox-mimp.php
imp/message-dimp.php
imp/message-mimp.php

index ae8a325..4a13615 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'dimp'));
 
 Horde_Nls::setTimeZone();
 $vars = Horde_Variables::getDefaultVariables();
index 5d50b44..de46685 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
 
 Horde_Nls::setTimeZone();
 
index af5c3c4..262c4e6 100644 (file)
@@ -17,7 +17,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
 
 /* Redirect back to the mailbox if folder use is not allowed. */
 if (empty($conf['user']['allow_folders'])) {
index 5a5ff27..3fe7364 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'dimp'));
 
 $scripts = array(
     array('DimpBase.js', 'imp'),
index 11b6cce..b982952 100644 (file)
@@ -107,14 +107,26 @@ class IMP_Application extends Horde_Registry_Application
         // IMP_Search object.
         IMP::setCurrentMailboxInfo();
 
+        $impmode = empty($this->initParams['impmode'])
+            ? 'imp'
+            : $this->initParams['impmode'];
         $viewmode = IMP::getViewMode();
+
         if ($viewmode == 'mimp') {
+            if ($impmode != 'mimp') {
+                header('Location: ' . IMP_Auth::getInitialPage(true)->setRaw(true));
+                exit;
+            }
             $GLOBALS['imp_notify'] = $GLOBALS['notification']->replace('status', array(), 'IMP_Notification_Listener_StatusMobile');
         } else {
-            $GLOBALS['imp_notify'] = $GLOBALS['notification']->replace('status', array('viewmode' => $viewmode), 'IMP_Notification_Listener_Status');
             if ($viewmode == 'imp') {
                 $GLOBALS['notification']->attach('audio');
+                if ($impmode == 'dimp') {
+                    header('Location: ' . IMP_Auth::getInitialPage(true)->setRaw(true));
+                    exit;
+                }
             }
+            $GLOBALS['imp_notify'] = $GLOBALS['notification']->replace('status', array('viewmode' => $viewmode), 'IMP_Notification_Listener_Status');
         }
     }
 
index 0fc6553..9de9bcd 100644 (file)
@@ -21,7 +21,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
 
 Horde_Nls::setTimeZone();
 
index d398499..b585054 100644 (file)
@@ -11,7 +11,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'dimp'));
 
 $folder = Horde_Util::getFormData('folder');
 $uid = Horde_Util::getFormData('uid');
index ba88dd7..a243971 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 require_once dirname(__FILE__) . '/lib/Application.php';
-Horde_Registry::appInit('imp');
+Horde_Registry::appInit('imp', array('impmode' => 'mimp'));
 
 Horde_Nls::setTimeZone();