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