From: Michael M Slusarz Date: Thu, 4 Mar 2010 06:38:16 +0000 (-0700) Subject: Add Horde_Registry->initialApp. Needed to prevent some login related redirection... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=35206beaacf3abcfa0fe80ffced902df146d14f7;p=horde.git Add Horde_Registry->initialApp. Needed to prevent some login related redirection in imp --- diff --git a/framework/Core/lib/Horde/Registry.php b/framework/Core/lib/Horde/Registry.php index 55d1aed2d..6ab1f7732 100644 --- a/framework/Core/lib/Horde/Registry.php +++ b/framework/Core/lib/Horde/Registry.php @@ -84,6 +84,13 @@ class Horde_Registry public $sessionHandler = null; /** + * The application that called appInit(). + * + * @var string + */ + public $initialApp; + + /** * Application bootstrap initialization. * Solves chicken-and-egg problem - need a way to init Horde environment * from application without an active Horde_Registry object. @@ -197,6 +204,8 @@ class Horde_Registry Horde_Auth::authenticateFailure($app, $e); } + $GLOBALS['registry']->initialApp = $app; + if (!$args['nocompress']) { Horde::compressOutput(); } diff --git a/imp/lib/Application.php b/imp/lib/Application.php index 8faae815e..b9a5a4d43 100644 --- a/imp/lib/Application.php +++ b/imp/lib/Application.php @@ -117,29 +117,29 @@ class IMP_Application extends Horde_Registry_Application $GLOBALS['notification']->addDecorator(new IMP_Notification_Handler_Decorator_Imap()); $GLOBALS['notification']->addType('status', 'imp.*', 'IMP_Notification_Event_Status'); + $redirect = false; + switch (IMP::getViewMode()) { case 'dimp': $GLOBALS['notification']->addType('status', 'dimp.*', 'IMP_Notification_Event_Status'); break; case 'mimp': - if (empty($this->initParams['impmode']) || - ($this->initParams['impmode'] != 'mimp')) { - header('Location: ' . IMP_Auth::getInitialPage(true)->setRaw(true)); - exit; - } + $redirect = (empty($this->initParams['impmode']) || + ($this->initParams['impmode'] != 'mimp')); break; case 'imp': - if (!empty($this->initParams['impmode']) && - ($this->initParams['impmode'] == 'dimp')) { - header('Location: ' . IMP_Auth::getInitialPage(true)->setRaw(true)); - exit; - } - + $redirect = (!empty($this->initParams['impmode']) && + ($this->initParams['impmode'] == 'dimp')); $GLOBALS['notification']->attach('audio'); break; } + + if ($redirect && ($GLOBALS['registry']->initialApp == 'imp')) { + header('Location: ' . IMP_Auth::getInitialPage(true)->setRaw(true)); + exit; + } } /* Horde permissions. */