Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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();
     }
 }