Пример #1
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     if ($request->getModuleName() === "admin" && !Zend_Auth::getInstance()->hasIdentity()) {
         $request->setModuleName("admin")->setControllerName("auth")->setActionName("login");
         $request->setDispatched();
     }
 }
Пример #2
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();
     $controllerName = $request->getControllerName();
     if (empty($controllerName)) {
         $controllerName = $dispatcher->getDefaultController();
     }
     $className = $dispatcher->formatControllerName($controllerName);
     if ($className) {
         try {
             // if this fails, an exception will be thrown and
             // caught below, indicating that the class can’t
             // be loaded.
             Zend_Loader::loadClass($className, $dispatcher->getControllerDirectory());
             $actionName = $request->getActionName();
             if (empty($actionName)) {
                 $actionName = $dispatcher->getDefaultAction();
             }
             $methodName = $dispatcher->formatActionName($actionName);
             $class = new ReflectionClass($className);
             if ($class->hasMethod($methodName)) {
                 // all is well - exit now
                 return;
             }
         } catch (Zend_Exception $e) {
             // Couldn’t load the class. No need to act yet,
             // just catch the exception and fall out of the
             // if
         }
     }
     // we only arrive here if can’t find controller or action
     $request->setControllerName('noroute');
     $request->setActionName('index');
     $request->setDispatched(false);
 }
Пример #3
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     if ($request->getModuleName() == 'admin' && !($request->getControllerName() == 'index' && $request->getActionName() == 'login')) {
         $auth = Zend_Auth::getInstance();
         if (!$auth->hasIdentity() || $auth->getIdentity() != 'admin') {
             $request->setDispatched(true);
             $this->_response->setRedirect('/admin/index/login');
         }
     }
 }
Пример #4
0
 public function preDispatch(\Zend_Controller_Request_Abstract $request)
 {
     $this->hasIdentity();
     if (!$this->_hasIdentity) {
         $request->setControllerName('auth');
         $request->setActionName('login');
         $request->setDispatched();
     }
     parent::preDispatch($request);
 }
Пример #5
0
 /**
  * Called before Zend_Controller_Front enters its dispatch loop.
  *
  * During the dispatch loop, Zend_Controller_Front keeps a
  * Zend_Controller_Request_Abstract object, and uses
  * Zend_Controller_Dispatcher to dispatch the
  * Zend_Controller_Request_Abstract object to controllers/actions.
  *
  * @param  AbstractRequest $request
  * @return void
  */
 public function dispatchLoopStartup(AbstractRequest $request)
 {
     $newActionName = self::_camelize($request->getActionName());
     #$newControllerName = self::_camelize($request->getControllerName());
     #$newModuleName     = self::_camelize($request->getModuleName());
     $request->setActionName($newActionName);
     #$request->setControllerName($newControllerName);
     #$request->setModuleName($newModuleName);
     $request->setDispatched(false);
     FrontController::getInstance()->setRequest($request);
 }
Пример #6
0
 /**
  * Pre-dispatch, check acl.
  *
  * @param Zend_Controller_Request_Abstract $request
  */
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $resource = $request->getModuleName();
     $controller = $request->getControllerName();
     $action = $request->getActionName();
     // Remember me for admin
     if ($resource == 'admin' && !Zend_Auth::getInstance()->hasIdentity()) {
         $r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
         $r->gotoUrl('/login')->redirectAndExit();
     }
     $request->setDispatched(true);
 }
Пример #7
0
 protected function _forwardLogin(Zend_Controller_Request_Abstract $request)
 {
     $request->setModuleName('kwf_controller_action_user');
     $request->setControllerName('login');
     $request->setDispatched(false);
     if (substr($request->getActionName(), 0, 4) == 'json') {
         $request->setActionName('json-login');
     } else {
         $params = array('location' => $request->getBaseUrl() . '/' . ltrim($request->getPathInfo(), '/'));
         $request->setParams($params);
         $request->setActionName('index');
     }
 }
Пример #8
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $controller = strtolower($request->getControllerName());
     $action = strtolower($request->getActionName());
     $route = $controller . '/' . $action;
     if (in_array($route, $this->_whitelist)) {
         return;
     }
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         return;
     }
     $request->setDispatched(false);
     $request->setControllerName('user');
     $request->setActionName('login');
     $request->setParam('next_uri', $request->getPathInfo());
 }
Пример #9
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $controller = strtolower($request->getControllerName());
     $action = strtolower($request->getActionName());
     $route = $controller . '/' . $action;
     if (in_array($route, self::$_whitelist)) {
         return;
     }
     $auth = Infra_AuthHelper::getAuthInstance();
     if ($auth->hasIdentity()) {
         return;
     }
     $request->setDispatched(false);
     $request->setControllerName(self::$defaultController);
     $request->setActionName(self::$defaultAction);
     $request->setParam('next_uri', $request->getPathInfo());
 }
Пример #10
0
 /**
  * Dispatch an HTTP request to a controller/action.
  *
  * @param Zend_Controller_Request_Abstract|null $request
  * @param Zend_Controller_Response_Abstract|null $response
  * @return void|Zend_Controller_Response_Abstract Returns response object if returnResponse() is true
  */
 public function dispatch(Zend_Controller_Request_Abstract $request = null, Zend_Controller_Response_Abstract $response = null)
 {
     if (!$this->getParam('noErrorHandler') && !$this->_plugins->hasPlugin('Zend_Controller_Plugin_ErrorHandler')) {
         // Register with stack index of 100
         #require_once 'Zend/Controller/Plugin/ErrorHandler.php';
         $this->_plugins->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(), 100);
     }
     if (!$this->getParam('noViewRenderer') && !Zend_Controller_Action_HelperBroker::hasHelper('viewRenderer')) {
         #require_once 'Zend/Controller/Action/Helper/ViewRenderer.php';
         Zend_Controller_Action_HelperBroker::getStack()->offsetSet(-80, new Zend_Controller_Action_Helper_ViewRenderer());
     }
     /**
      * Instantiate default request object (HTTP version) if none provided
      */
     if (null !== $request) {
         $this->setRequest($request);
     } elseif (null === $request && null === ($request = $this->getRequest())) {
         #require_once 'Zend/Controller/Request/Http.php';
         $request = new Zend_Controller_Request_Http();
         $this->setRequest($request);
     }
     /**
      * Set base URL of request object, if available
      */
     if (is_callable(array($this->_request, 'setBaseUrl'))) {
         if (null !== $this->_baseUrl) {
             $this->_request->setBaseUrl($this->_baseUrl);
         }
     }
     /**
      * Instantiate default response object (HTTP version) if none provided
      */
     if (null !== $response) {
         $this->setResponse($response);
     } elseif (null === $this->_response && null === ($this->_response = $this->getResponse())) {
         #require_once 'Zend/Controller/Response/Http.php';
         $response = new Zend_Controller_Response_Http();
         $this->setResponse($response);
     }
     /**
      * Register request and response objects with plugin broker
      */
     $this->_plugins->setRequest($this->_request)->setResponse($this->_response);
     /**
      * Initialize router
      */
     $router = $this->getRouter();
     $router->setParams($this->getParams());
     /**
      * Initialize dispatcher
      */
     $dispatcher = $this->getDispatcher();
     $dispatcher->setParams($this->getParams())->setResponse($this->_response);
     // Begin dispatch
     try {
         /**
          * Route request to controller/action, if a router is provided
          */
         /**
          * Notify plugins of router startup
          */
         $this->_plugins->routeStartup($this->_request);
         $router->route($this->_request);
         /**
          * Notify plugins of router completion
          */
         $this->_plugins->routeShutdown($this->_request);
         /**
          * Notify plugins of dispatch loop startup
          */
         $this->_plugins->dispatchLoopStartup($this->_request);
         /**
          *  Attempt to dispatch the controller/action. If the $this->_request
          *  indicates that it needs to be dispatched, move to the next
          *  action in the request.
          */
         do {
             $this->_request->setDispatched(true);
             /**
              * Notify plugins of dispatch startup
              */
             $this->_plugins->preDispatch($this->_request);
             /**
              * Skip requested action if preDispatch() has reset it
              */
             if (!$this->_request->isDispatched()) {
                 continue;
             }
             /**
              * Dispatch request
              */
             try {
                 $dispatcher->dispatch($this->_request, $this->_response);
             } catch (Exception $e) {
                 if ($this->throwExceptions()) {
                     throw $e;
                 }
                 $this->_response->setException($e);
             }
             /**
              * Notify plugins of dispatch completion
              */
             $this->_plugins->postDispatch($this->_request);
         } while (!$this->_request->isDispatched());
     } catch (Exception $e) {
         if ($this->throwExceptions()) {
             throw $e;
         }
         $this->_response->setException($e);
     }
     /**
      * Notify plugins of dispatch loop completion
      */
     try {
         $this->_plugins->dispatchLoopShutdown();
     } catch (Exception $e) {
         if ($this->throwExceptions()) {
             throw $e;
         }
         $this->_response->setException($e);
     }
     if ($this->returnResponse()) {
         return $this->_response;
     }
     $this->_response->sendResponse();
 }
Пример #11
0
 /**
  * Dispatch controller action
  *
  * @param string $action action name
  * @return void
  */
 public function dispatch($action)
 {
     $this->_request->setDispatched(false);
 }
Пример #12
0
 /**
  * Set the controllername if needed and re-dispatch
  *
  * @param $request
  * @return void
  */
 public function postDispatch(Zend_Controller_Request_Abstract $request)
 {
     //Check if the module is registered for HMVC
     if (!$this->isActiveModule($request->getModuleName())) {
         return;
     }
     ++$this->_pos;
     $dispatched = true;
     if (array_key_exists($this->_pos, $this->_controllers)) {
         //Whoa! New controller to serve!
         $dispatched = false;
         $request->setControllerName($this->_controllers[$this->_pos])->setParam('controller', $this->_controllers[$this->_pos]);
     }
     $request->setDispatched($dispatched);
 }