diff -crB mag1500/app/code/core/Mage/Admin/Model/Observer.php mag1500-PATCH/app/code/core/Mage/Admin/Model/Observer.php *** mag1500/app/code/core/Mage/Admin/Model/Observer.php 2011-02-03 13:34:05.000000000 +0000 --- mag1500-PATCH/app/code/core/Mage/Admin/Model/Observer.php 2015-02-11 15:37:08.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 mag1500/app/code/core/Mage/Core/Controller/Request/Http.php mag1500-PATCH/app/code/core/Mage/Core/Controller/Request/Http.php *** mag1500/app/code/core/Mage/Core/Controller/Request/Http.php 2011-02-03 13:34:01.000000000 +0000 --- mag1500-PATCH/app/code/core/Mage/Core/Controller/Request/Http.php 2015-02-11 15:35:36.000000000 +0000 *************** *** 72,77 **** --- 72,84 ---- * @var array */ protected $_beforeForwardInfo = array(); + + /** + * Flag for recognizing if request internally forwarded + * + * @var bool + */ + protected $_internallyForwarded = false; /** * Returns ORIGINAL_PATH_INFO. *************** *** 528,531 **** --- 535,560 ---- } return false; } + + /** + * 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; + } }