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
 /**
  * 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;
 }