Esempio n. 1
0
 /**
  * @param MvcEvent $event
  */
 public function onBootstrap(MvcEvent $event)
 {
     $eventManager = $event->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     return;
 }
 public function __invoke(MvcEvent $e)
 {
     $exception = $e->getParam('exception');
     //it is just a sample, you can create service for logger
     $writer = new \Zend\Log\Writer\Stream('./data/logs/' . date('Y-m-d') . '-log.txt');
     $log = new \Zend\Log\Logger();
     $log->addWriter($writer);
     $log->err($exception);
 }
 /**
  * Verifica se precisa fazer a autorização do acesso
  * @param  MvcEvent $event Evento
  * @return boolean
  */
 public function mvcPreDispatch($event)
 {
     $di = $event->getTarget()->getServiceLocator();
     $routeMatch = $event->getRouteMatch();
     $moduleName = $routeMatch->getParam('module');
     $controllerName = $routeMatch->getParam('controller');
     //        if ($moduleName == 'admin' && $controllerName != 'Admin\Controller\Auth') {
     //            $authService = $di->get('Admin\Service\Auth');
     //            if (! $authService->authorize()) {
     //                $redirect = $event->getTarget()->redirect();
     //                $redirect->toUrl('/admin/auth');
     //            }
     //        }
     $actionName = $routeMatch->getParam('action');
     $authService = $di->get('Admin\\Service\\Auth');
     if (!$authService->authorize($moduleName, $controllerName, $actionName)) {
         throw new \Exception('Você não tem permissão para acessar este recurso');
     }
     return true;
 }
 /**
  * Get the event
  *
  * @return \Zend\Mvc\MvcEvent
  * @throws Exception\DomainException if unable to find event
  */
 private function getEvent()
 {
     if ($this->event) {
         return $this->event;
     }
     $controller = $this->getController();
     if (!$controller instanceof \Zend\Mvc\InjectApplicationEventInterface) {
         throw new \Exception('Forward plugin requires a controller that implements InjectApplicationEventInterface');
     }
     $event = $controller->getEvent();
     if (!$event instanceof \Zend\Mvc\MvcEvent) {
         $params = [];
         if ($event) {
             $params = $event->getParams();
         }
         $event = new MvcEvent();
         $event->setParams($params);
     }
     $this->event = $event;
     return $this->event;
 }