Example #1
0
 /**
  * checks to for a store's "punchout only" restricted access flag
  *
  * @param Varien_Event_Observer $observer
  */
 public function checkForPunchoutOnlySite(Varien_Event_Observer $observer)
 {
     if (self::$_inSessionEvent == 1) {
         return;
     }
     self::$_inSessionEvent = 1;
     /**
      * @var $helper Vbw_Punchout_Helper_Config
      * @var $poSession Vbw_Punchout_Model_Session
      * @var $response Mage_Core_Controller_Response_Http
      */
     // $session = $observer->getEvent()->getCustomerSession();
     $request = Mage::app()->getRequest();
     $helper = Mage::helper('vbw_punchout/config');
     $poOnly = $helper->getConfig('site/punchout_only');
     $poSession = Mage::getSingleton("vbw_punchout/session");
     $action = Mage::app()->getFrontController()->getAction();
     $response = $action->getResponse();
     if ($poOnly == 1 && $poSession->getPunchoutId() == false && $action->getRequest()->getQuery('nopotest') != 1) {
         $result = new Varien_Object();
         $result->setShouldProceed(true);
         Mage::dispatchEvent('punchoutonly_restriction', array('controller' => $action, 'result' => $result));
         if ($result->getShouldProceed()) {
             //$module_name = strtolower($request->getControllerModule());
             //if ($module_name == 'vbw_punchout') {
             //    $result->setShouldProceed(false);
             //}
             self::$_inSessionEvent = 0;
             $url = $helper->getConfig('site/punchout_only_url');
             $response->setRedirect(Mage::getUrl($url, array('_query' => "nopotest=1")));
             $response->sendResponse();
         }
     }
     self::$_inSessionEvent = 0;
 }