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; }
/** * Disable module if given route should be ignored * * @param Mage_Core_Controller_Front_Action $action controller object * * @return void */ public function processIgnoredRoutes(Mage_Core_Controller_Front_Action $action) { $path = 'frontend/smile_magecache/ignored_routes'; $ignoreRoute = false; foreach (Mage::app()->getConfig()->getNode($path)->children() as $node) { $route = (string) $node; if (substr($action->getRequest()->getRequestUri(), 0, strlen($route)) === $route) { $ignoreRoute = true; break; } } if (!$ignoreRoute) { Mage::helper('smile_magecache')->activate(); } }