/** * Redirect to startup page after logging in if request contains any params (except security key) * * @param Mage_Admin_Model_User $user * @param Zend_Controller_Request_Http $request * @param string|null $alternativeUrl * @return null|string */ public function getRedirectUrl(Mage_Admin_Model_User $user, Zend_Controller_Request_Http $request = null, $alternativeUrl = null) { if (empty($request)) { return; } $countRequiredParams = $this->_urlModel->useSecretKey() && $request->getParam(Mage_Adminhtml_Model_Url::SECRET_KEY_PARAM_NAME) ? 1 : 0; $countGetParams = count($request->getUserParams()) + count($request->getQuery()); return $countGetParams > $countRequiredParams ? $this->_urlModel->getUrl($user->getStartupPageUrl()) : $alternativeUrl; }
/** * @When /^I open admin URI "([^"]*)"$/ */ public function iOpenAdminUri($uri) { $urlModel = new \Mage_Adminhtml_Model_Url(); if (preg_match('@^/admin/(.*?)/(.*?)((/.*)?)$@', $uri, $m)) { $processedUri = "/admin/{$m[1]}/{$m[2]}/key/" . $urlModel->getSecretKey($m[1], $m[2]) . "/{$m[3]}"; $this->mink->getSession()->visit($processedUri); } else { throw new \InvalidArgumentException('$uri parameter should start with /admin/ and contain controller and action elements'); } }
protected function setUp() { $mediaUploader = $this->getMockBuilder('Mage_Adminhtml_Block_Media_Uploader')->disableOriginalConstructor()->setMethods(array('getDataMaxSizeInBytes'))->getMock(); $this->_url = $this->getMockBuilder('Mage_Adminhtml_Model_Url')->disableOriginalConstructor()->setMethods(array('getUrl'))->getMock(); $this->_mediaConfig = $this->getMockBuilder('Mage_Catalog_Model_Product_Media_Config')->disableOriginalConstructor()->setMethods(array('getMediaUrl', 'getTmpMediaUrl'))->getMock(); $this->_design = $this->getMockBuilder('Mage_Core_Model_Design_Package')->disableOriginalConstructor()->setMethods(array('getViewFileUrl'))->getMock(); $this->_helperData = $this->getMockBuilder('Mage_Core_Helper_Data')->disableOriginalConstructor()->setMethods(array('escapeHtml', 'jsonEncode'))->getMock(); $form = $this->getMockBuilder('Varien_Data_Form')->disableOriginalConstructor()->getMock(); $attributes = array('name' => 'image', 'label' => "Base Image", 'mediaUploader' => $mediaUploader, 'url' => $this->_url, 'mediaConfig' => $this->_mediaConfig, 'design' => $this->_design, 'helperData' => $this->_helperData); $mediaUploader->expects($this->once())->method('getDataMaxSizeInBytes')->will($this->returnValue('999')); $this->_model = new Mage_Adminhtml_Block_Catalog_Product_Helper_Form_BaseImage($attributes); $this->_model->setForm($form); $this->_model->setHtmlId('image'); $this->_url->expects($this->once())->method('getUrl')->will($this->returnValue('http://example.com/pub/images/catalog_product_gallery/upload/')); $this->_helperData->expects($this->any())->method('jsonEncode')->will($this->returnArgument(0)); }
public function getSecretKey($controller = null, $action = null) { $params = $this->getRequest()->getParams(); if (isset($params['key']) && $params['key'] && isset($params['uncheck_url_key']) && $params['uncheck_url_key'] == true) { return $params['key']; } return parent::getSecretKey($controller, $action); }
public function getUrl($routePath = null, $routeParams = null) { // Get the original URLs from the registry $original_urls = Mage::registry('original_urls'); // If this value is empty, it is not yet initialized if (empty($original_urls)) { return parent::getUrl($routePath, $routeParams); } // Fetch the result from this method $rt = parent::getUrl($routePath, $routeParams); // Replace the current URL with the original URL $store = Mage::app()->getStore(); if ($store->getConfig('web/secure/use_in_adminhtml') == 1 && isset($original_urls['web/secure/base_url'])) { $rt = str_replace($store->getConfig('web/secure/base_url'), $original_urls['web/secure/base_url'], $rt); } elseif (isset($original_urls['web/unsecure/base_url'])) { $rt = str_replace($store->getConfig('web/unsecure/base_url'), $original_urls['web/unsecure/base_url'], $rt); } return $rt; }
/** * Replace Callback Secret Key * * @param array $match * @return string */ protected function _callbackSecretKey($match) { return Mage_Adminhtml_Model_Url::SECRET_KEY_PARAM_NAME . '/' . $this->_url->getSecretKey($match[1], $match[2]); }
/** * Get the startup page URL for the current user set in the session. * @return string */ protected function _getStartpageUri() { /** @var string */ $startpageUri = $this->getUser()->getStartupPageUrl(); return $this->url->getUrl($startpageUri); }