diff -crB mag1323/app/code/core/Mage/Admin/Model/Observer.php mag1323-PATCH/app/code/core/Mage/Admin/Model/Observer.php *** mag1323/app/code/core/Mage/Admin/Model/Observer.php 2009-07-23 06:27:17.000000000 +0100 --- mag1323-PATCH/app/code/core/Mage/Admin/Model/Observer.php 2015-02-11 15:23:31.000000000 +0000 *************** *** 37,42 **** --- 37,45 ---- { $session = Mage::getSingleton('admin/session'); /* @var $session Mage_Admin_Model_Session */ + /** + * @var $request Mage_Core_Controller_Request_Http + */ $request = Mage::app()->getRequest(); $user = $session->getUser(); *************** *** 55,61 **** $user = $session->login($username, $password, $request); $request->setPost('login', null); } ! if (!$request->getParam('forwarded')) { if ($request->getParam('isIframe')) { $request->setParam('forwarded', true) ->setControllerName('index') --- 58,65 ---- $user = $session->login($username, $password, $request); $request->setPost('login', null); } ! if (!$request->getInternallyForwarded()) { ! $request->setInternallyForwarded(); if ($request->getParam('isIframe')) { $request->setParam('forwarded', true) ->setControllerName('index') diff -crB mag1323/app/code/core/Mage/Core/Controller/Request/Http.php mag1323-PATCH/app/code/core/Mage/Core/Controller/Request/Http.php *** mag1323/app/code/core/Mage/Core/Controller/Request/Http.php 2009-07-23 06:28:42.000000000 +0100 --- mag1323-PATCH/app/code/core/Mage/Core/Controller/Request/Http.php 2015-02-11 15:24:37.000000000 +0000 *************** *** 56,61 **** --- 56,68 ---- protected $_directFrontNames = array(); protected $_controllerModule = null; + + /** + * Flag for recognizing if request internally forwarded + * + * @var bool + */ + protected $_internallyForwarded = false; public function __construct($uri = null) { *************** *** 391,394 **** --- 398,423 ---- } return $this->getActionName(); } + + /** + * Define that request was forwarded internally + * + * @param boolean $flag + * @return Mage_Core_Controller_Request_Http + */ + public function setInternallyForwarded($flag = true) + { + $this->_internallyForwarded = (bool)$flag; + return $this; + } + + /** + * Checks if request was forwarded internally + * + * @return bool + */ + public function getInternallyForwarded() + { + return $this->_internallyForwarded; + } } \ No newline at end of file