public function process(Mage_Core_Controller_Front_Action $controller) { $request = $controller->getRequest(); if ($request->isXmlHttpRequest() || !$request->isGet() || strpos($request->getHeader('accept'), 'text/html') === false) { return; } else { $searchText = $this->getSearchQuery($controller->getRequest()); $message = Mage::helper('searchindex')->__('The page you requested was not found, but we have searched for relevant content.'); Mage::getSingleton('core/session')->addNotice($message); Mage::getSingleton('core/session')->setData('route404', $message); $url = Mage::getUrl('catalogsearch/result', array('_query' => array('q' => $searchText))); $controller->getResponse()->clearHeaders()->setRedirect($url)->sendResponse(); } }
/** * Check if admin is logged in and authorized to access resource by specified ACL path * * If not authenticated, will try to do it using credentials from HTTP-request * * @param Mage_Core_Controller_Front_Action $controller * @param string $aclResource * @return bool */ public static function authenticateAndAuthorizeAdmin(Mage_Core_Controller_Front_Action $controller, $aclResource) { /** @var $auth Mage_Backend_Model_Auth */ $auth = Mage::getModel('Mage_Backend_Model_Auth'); $session = $auth->getAuthStorage(); // try to login using HTTP-authentication if (!$session->isLoggedIn()) { list($login, $password) = Mage::helper('Mage_Core_Helper_Http')->getHttpAuthCredentials($controller->getRequest()); try { $auth->login($login, $password); } catch (Mage_Backend_Model_Auth_Exception $e) { Mage::logException($e); } } // verify if logged in and authorized if (!$session->isLoggedIn() || !Mage::getSingleton('Mage_Core_Model_Authorization')->isAllowed($aclResource)) { Mage::helper('Mage_Core_Helper_Http')->failHttpAuthentication($controller->getResponse(), 'RSS Feeds'); $controller->setFlag('', self::FLAG_NO_DISPATCH, true); return false; } return true; }
/** * Adds varnish response headers * * @param Mage_Core_Controller_Front_Action $controllerAction * @return $this */ protected function _addResponseHeaders($controllerAction) { if ($this->_getHelper()->isDebug()) { $controllerAction->getResponse()->setHeader('X-Debug', '1'); } if ($this->_getHelper()->getIsEsiUsed()) { $controllerAction->getResponse()->setHeader('Surrogate-Control', 'key=ESI/1.0'); } if (!$this->_getHelper()->isAllowedCurrentPage()) { $this->performBan(); } else { if ($ttl = $this->_getHelper()->getCurrentPageTtl()) { $this->_getHelper()->addTtl($ttl); } foreach ($this->_collectedObjects as $object) { $this->_getHelper()->addObjectTags($this->_getProcessor()->getTags($object)); } $this->_collectedObjects = array(); } if ($controllerAction->getResponse()->canSendHeaders()) { foreach (Mage::helper('ecomdev_varnish')->getVarnishHeaders(!$this->_getHelper()->isAllowedCurrentPage()) as $name => $value) { if (is_array($value)) { foreach ($value as $val) { $controllerAction->getResponse()->setHeader($name, $val); } } else { $controllerAction->getResponse()->setHeader($name, $value, true); } } } return $this; }