public function prepareViewModel(MvcEvent $event, $action)
 {
     if ($event->getTarget()->forward()->getNumNestedForwards() > 0) {
         return $event->getResult();
     }
     $result = $event->getResult();
     $response = $event->getResponse();
     $response->setStatusCode($result->getStatusCode());
     $response->getHeaders()->addHeaders($result->getHeaders());
     $controller = $event->getTarget();
     $viewModel = $controller->acceptableViewModelSelector($controller->getOptions()->getAcceptCriteria());
     if ($vars = $result->getSerializedModel()) {
         $viewModel->setVariables($vars);
     }
     //set the template
     if ($viewModel instanceof JsonModel && count($viewModel->getVariables()) == 0) {
         if ($response->getStatusCode() == 200) {
             $response->setStatusCode(204);
         }
         return $response;
     } elseif ($viewModel->getTemplate() == null) {
         $viewModel->setTemplate($controller->getOptions()->getTemplates()[$action]);
     }
     $event->setResult($viewModel);
     return $viewModel;
 }
 public function layoutChange(MvcEvent $event)
 {
     // Change By Route Defaults
     $routeMatch = $event->getRouteMatch();
     if ($routeMatch && ($layout = $routeMatch->getParam('layout', false))) {
         $event->getTarget()->layout($layout);
         return;
     }
     /** @var \Zend\Http\PhpEnvironment\Request $request */
     $request = $event->getRequest();
     $uri = $request->getServer('REQUEST_URI');
     $config = $this->getConfig($event->getParam('application')->getConfig());
     // Change Layout by URI
     foreach ($config['uri'] as $var => $value) {
         $position = strpos($var, '*');
         if ($position !== false) {
             $uri = substr($uri, 0, $position);
             $var = substr($var, 0, $position);
         }
         if ($var == $uri) {
             if (method_exists($target = $event->getTarget(), 'layout')) {
                 $target->layout($value);
             } else {
                 $event->getViewModel()->setTemplate($value);
             }
         }
     }
 }
Exemple #3
0
 public function onBootstrap(MvcEvent $e)
 {
     $app = $e->getApplication();
     $eventManager = $app->getEventManager();
     #$eventManager        = $e->getApplication()->getEventManager();
     $eventManager->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         if (isset($config['module_layouts'][$moduleNamespace])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]);
         }
     }, 100);
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $shared = $eventManager->getSharedManager();
     $sm = $app->getServiceManager();
     $shared->attach('ZfcUser\\Service\\User', 'register.post', function ($e) use($sm) {
         $userService = $e->getTarget();
         $sm = $userService->getServiceManager();
         $em = $sm->get('doctrine.entitymanager.orm_default');
         $newUser = $e->getParam('user');
         #$registrationForm = $e->getParam('form');
         $config = $sm->get('config');
         $criteria = array('roleId' => $config['bjyauthorize']['new_user_default_role']);
         $defaultUserRole = $em->getRepository('ErsBase\\Entity\\UserRole')->findOneBy($criteria);
         if ($defaultUserRole !== null) {
             $newUser->addRole($defaultUserRole);
             $em->persist($newUser);
             $em->flush();
         }
     });
 }
 public function afterDispatch(MvcEvent $e)
 {
     $controllerName = $e->getRouteMatch()->getMatchedRouteName();
     if ($controllerName != 'login' && ($controllerName != 'application' && $controllerName != 'home')) {
         $containerSession = new \Zend\Session\Container('cbol');
         $e->getTarget()->layout()->repo = $containerSession->reportesVias;
         $e->getTarget()->layout()->acceso = $containerSession->permisosUser;
         $e->getTarget()->layout()->suge = $containerSession->sugerencias;
         $auth = new \Zend\Authentication\AuthenticationService();
         $response = $e->getResponse();
         if (!$auth->hasIdentity()) {
             $url = $e->getRequest()->getBaseUrl() . '/login';
             $response->getHeaders()->addHeaderLine('Location', $url);
             $response->setStatusCode(302);
             $response->sendHeaders();
             return $response;
         } else {
             $localAcl = new \Login\Model\permisos();
             if (!$localAcl->isAllowed($auth->getIdentity()->perfil_id, $controllerName)) {
                 $this->onDispatchError($e, $controllerName);
             } elseif (is_null($containerSession->idSession)) {
                 $url = $e->getRequest()->getBaseUrl() . '/login/logout';
                 $response->getHeaders()->addHeaderLine('Location', $url);
                 $response->setStatusCode(302);
                 $response->sendHeaders();
                 return $response;
             } elseif ($e->getResponse()->getStatusCode() == 403) {
                 $this->onDispatchError($e, $controllerName);
             }
         }
     }
 }
Exemple #5
0
 public function handleControllerCannotDispatchRequest(MvcEvent $e)
 {
     $action = $e->getRouteMatch()->getParam('action');
     $controller = get_class($e->getTarget());
     // error-controller-cannot-dispatch
     if (!method_exists($e->getTarget(), $action . 'Action')) {
         $logText = 'The requested controller ' . $controller . ' was unable to dispatch the request : ' . $action . 'Action';
         //you can do logging, redirect, etc here..
         echo $logText;
     }
 }
Exemple #6
0
 public function onBootstrap(MvcEvent $e)
 {
     $serviceLocator = $e->getApplication()->getServiceManager();
     $e->getApplication()->getEventManager()->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) use($serviceLocator) {
         if (!$e->getRequest() instanceof Request) {
             return;
         }
         $request = $e->getRequest();
         $config = $serviceLocator->get('Config');
         $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : '';
         $data = ['direction' => 'in', 'status' => 'success', 'destination' => ['service' => $serviceName, 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()], 'source' => ['server' => $_SERVER['REMOTE_ADDR'], 'service' => $request->getHeader('X-Request-Name') ? $request->getHeader('X-Request-Name')->getFieldValue() : '', 'uri' => '']];
         if (!$e->getRequest()->isGet()) {
             $post = json_decode($e->getRequest()->getContent(), true, 100);
             unset($post['password']);
             $data['data'] = $post;
         }
         \LosLog\Log\RequestLogger::save($e->getRequest(), $data);
     }, 100);
     $hermes = $serviceLocator->get('hermes');
     $em = $hermes->getEventManager();
     $em->attach('request.post', function (Event $e) use($serviceLocator) {
         /* @var \Hermes\Api\Client $hermes */
         $hermes = $e->getTarget();
         $request = $hermes->getZendClient()->getRequest();
         $config = $serviceLocator->get('Config');
         $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : '';
         $data = ['direction' => 'out', 'status' => 'success', 'source' => ['service' => $serviceName, 'server' => $_SERVER['SERVER_ADDR'], 'uri' => $_SERVER['REQUEST_URI']], 'destination' => ['service' => $hermes->getServiceName(), 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()], 'http_code' => $hermes->getZendClient()->getResponse()->getStatusCode()];
         if (!$request->isGet()) {
             $post = json_decode($request->getContent(), true, 100);
             unset($post['password']);
             $data['data'] = $post;
         }
         \LosLog\Log\RequestLogger::save($request, $data);
     }, 100);
     $em->attach('request.fail', function (Event $e) use($serviceLocator) {
         /* @var \Hermes\Api\Client $hermes */
         $hermes = $e->getTarget();
         $request = $hermes->getZendClient()->getRequest();
         $config = $serviceLocator->get('Config');
         $serviceName = isset($config['hermes']['service_name']) ? $config['hermes']['service_name'] : '';
         $data = ['direction' => 'out', 'status' => 'failed', 'source' => ['service' => $serviceName, 'server' => $_SERVER['SERVER_ADDR'], 'uri' => $_SERVER['REQUEST_URI']], 'destination' => ['service' => $hermes->getServiceName(), 'server' => $request->getUri()->getHost(), 'uri' => $request->getUriString()]];
         if (!$request->isGet()) {
             $post = json_decode($request->getContent(), true, 100);
             unset($post['password']);
             $data['data'] = $post;
         }
         $exception = $e->getParams();
         $data['http_code'] = $exception->getCode();
         $data['error'] = $exception->getMessage();
         \LosLog\Log\RequestLogger::save($request, $data);
     }, 100);
 }
 public function flush(MvcEvent $event)
 {
     if ($event->getTarget()->forward()->getNumNestedForwards() > 0) {
         return $event->getResult();
     }
     $options = $event->getTarget()->getOptions();
     $options->getModelManager()->flush();
     if (!($flushExceptions = $options->getExceptionSubscriber()->getFlushExceptions())) {
         return $event->getResult();
     } else {
         return $this->prepareExceptions($flushExceptions, $options->getExceptionSerializer());
     }
 }
 public function unserializeSingle(MvcEvent $event, $mode)
 {
     if (count($event->getParam('deeperResource')) > 0 || ($result = $event->getResult())) {
         return $event->getResult();
     }
     $data = $event->getParam('data');
     $id = $event->getParam('id');
     $options = $event->getTarget()->getOptions();
     if ($property = $options->getProperty()) {
         $data[$property] = $id;
     }
     $result = new Result($event->getTarget()->getOptions()->getManifest()->getServiceManager()->get('unserializer')->fromArray($data, $event->getTarget()->getOptions()->getClass(), $event->getParam('document'), $mode));
     $event->setResult($result);
     return $result;
 }
Exemple #9
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $application = $e->getApplication();
     $sm = $application->getServiceManager();
     $sharedManager = $eventManager->getSharedManager();
     //Setting layouts
     $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         if (isset($config['module_layouts'][$moduleNamespace])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]);
         }
     }, 100);
     $router = $sm->get('router');
     $request = $sm->get('request');
     $matchedRoute = $router->match($request);
     if (null !== $matchedRoute) {
         //Check the Authentication in every controller different with Login
         //If there is no identity this will redirect to Login
         $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function () use($sm) {
             $sm->get('ControllerPluginManager')->get('Authentication')->isAuthtenticated();
         }, 2);
         // @todo implement ACL
         //Check ACL and show the menu
         //$sharedManager->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function() use ($sm) {
         //    $sm->get('ControllerPluginManager')->get('Privileges')->doAuthorization();
         //}, 2);
     }
 }
Exemple #10
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $eventManager->attach(MvcEvent::EVENT_ROUTE, function ($e) {
         $auth = $e->getApplication()->getServiceManager()->get("Auth_Service");
         $application = $e->getApplication();
         $viewModel = $application->getMvcEvent()->getViewModel();
         $viewModel->UserAuth = false;
         if ($auth->hasIdentity()) {
             $viewModel->UserAuth = true;
             $viewModel->UserName = $auth->getStorage()->read()->name;
         }
         $routeMatch = $e->getRouteMatch();
         $controller = $routeMatch->getParam('controller');
         $whitelist = array('Customers\\Controller\\Login');
         if (!in_array($controller, $whitelist)) {
             if (!$auth->hasIdentity()) {
                 $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
                     $controller = $e->getTarget();
                     $controller->plugin('redirect')->toRoute('customers');
                 }, 100);
             }
         }
     });
     //        $config  = new StandardConfig();
     //        $config->setOptions(array(
     //            'remember_me_seconds' => 10,
     //            'name'                => 'zf2',
     //        ));
     //        $manager = new SessionManager($config);
 }
Exemple #11
0
 /**
  * addRoutes Event Handler
  * set static pages routes
  * 
  * @access public
  * @param MvcEvent $event
  */
 public function addRoutes(MvcEvent $event)
 {
     $serviceManager = $event->getTarget()->getServiceManager();
     $routeEvent = $serviceManager->get('CMS\\Event\\RouteEvent');
     $routeConfig = $routeEvent->addStaticPagesRoutes($event);
     $this->addedRoutes = $routeConfig;
 }
Exemple #12
0
 /**
  * Override default rendering strategy
  *
  * @param MvcEvent $e
  */
 public function onBootstrap(MvcEvent $e)
 {
     // attach the JSON view strategy
     $app = $e->getTarget();
     /** @var ServiceLocator $locator */
     $locator = $app->getServiceManager();
     /**
      * @var View $view
      */
     $view = $locator->get('ZendViewView');
     /**
      * @var ViewJsonStrategyFactory $strategy
      */
     $strategy = $locator->get('ViewJsonStrategy');
     $view->getEventManager()->attach($strategy, 100);
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     //Add listener to check the response
     // Allow possibility to return a simple array
     $eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch'));
     //Add listener for rendering the error
     $eventManager->attach(MvcEvent::EVENT_RENDER, array($this, 'onRenderError'));
     //Add listener to finish the execution of request
     $eventManager->attach(MvcEvent::EVENT_FINISH, array($this, 'onFinish'));
 }
Exemple #13
0
 public function onBootstrap(MvcEvent $e)
 {
     $application = $e->getApplication();
     $serviceManager = $application->getServiceManager();
     $eventManager = $application->getEventManager();
     $sharedManager = $eventManager->getSharedManager();
     // DISPATCH EVENT
     $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         if ($moduleNamespace == 'Frontend') {
             // frontend layout
             // wenn der benutzer eingeloggt ist darf er das admin panel betreten?
             $authService = $e->getApplication()->getServiceManager()->get('AuthService');
             // normal layout
             $controller->layout('layout/frontend');
             /**
                             if( $authService->isLoggedIn() ) {
                                 // layout für registrierte user
                     			$controller->layout('layout/frontend/registered');
                             } else {
                                 // normal layout unregistriert
                                 $controller->layout('layout/frontend');
                             }
                             **/
         }
     }, 50);
 }
Exemple #14
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     //$eventManager->attach(MvcEvent::EVENT_DISPATCH,array($this,'authPreDispatch'),1);
     /**
      * This allows to set the layout by module by action. By default
      * it gets layout\layout. This gets the modules from module_layouts
      * array in module.config.php.
      */
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $controllerName = explode('\\', $controllerClass);
         $controllerName = str_replace('Controller', '', array_pop($controllerName));
         $config = $e->getApplication()->getServiceManager()->get('config');
         $routeMatch = $e->getRouteMatch();
         $actionName = strtolower($routeMatch->getParam('action', 'not-found'));
         // get the action name
         if (isset($config['module_layouts'][$moduleNamespace][$controllerName][$actionName])) {
             $controller->layout($config['module_layouts'][$moduleNamespace][$controllerName][$actionName]);
         } elseif (isset($config['module_layouts'][$moduleNamespace][$controllerName]['default'])) {
             $controller->layout($config['module_layouts'][$moduleNamespace][$controllerName]['default']);
         }
     }, -100);
 }
Exemple #15
0
 public function loadConfiguration(MvcEvent $e)
 {
     $controller = $e->getTarget();
     $user_session = new Container('usuario');
     $controller->layout()->nome = trim(substr($user_session->nome, 0, 16));
     $controller->layout()->foto = $user_session->foto ? "/fotos/" . str_replace(" ", "_", $user_session->foto) : "/fotos/default.jpg";
 }
Exemple #16
0
 /**
  * @param \Zend\Mvc\MvcEvent $e
  * @uses \Zend\Mvc\Application
  */
 public function preDispatch(\Zend\Mvc\MvcEvent $e)
 {
     $application = $e->getTarget();
     $routematch = $e->getRouteMatch();
     $cont = $routematch->getParam('controller');
     $action = $routematch->getParam('action');
 }
Exemple #17
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $routeMatch = $e->getRouteMatch();
         $parkingLotId = $routeMatch->getParam('parking_lot_id', 0);
         // get the parking lot id
         if (method_exists($controller, 'setParkingLotId')) {
             $serviceManager = $e->getApplication()->getServiceManager();
             $dbAdapter = $serviceManager->get('Zend\\Db\\Adapter\\Adapter');
             $parkingLotExistsValidator = new RecordExists(['adapter' => $dbAdapter, 'table' => DbTables::TBL_PARKING_LOTS, 'field' => 'id']);
             if (!$parkingLotExistsValidator->isValid($parkingLotId) && $parkingLotId != 0) {
                 $url = $e->getRouter()->assemble(['controller' => 'parking', 'action' => 'index'], ['name' => 'parking']);
                 $response = $e->getResponse();
                 $response->getHeaders()->addHeaderLine('Location', $url);
                 $response->setStatusCode(302);
                 $response->sendHeaders();
                 return $response;
             }
             $controller->setParkingLotId($parkingLotId);
         }
     }, 100);
 }
Exemple #18
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $eventManager->attach(MvcEvent::EVENT_ROUTE, [$this, 'onViewHelper']);
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $routeMatch = $e->getRouteMatch();
         $apartmentId = $routeMatch->getParam('apartment_id', 0);
         // get the apartment ID
         if (method_exists($controller, 'setApartmentID')) {
             $serviceManager = $e->getApplication()->getServiceManager();
             $dbAdapter = $serviceManager->get('Zend\\Db\\Adapter\\Adapter');
             $apartmentExistValidator = new RecordExists(['adapter' => $dbAdapter, 'table' => DbTables::TBL_APARTMENTS, 'field' => 'id']);
             if (!$apartmentExistValidator->isValid($apartmentId) && $apartmentId != 0) {
                 $url = $e->getRouter()->assemble(array('controller' => 'apartment', 'action' => 'search'), ['name' => 'apartments']);
                 $response = $e->getResponse();
                 $response->getHeaders()->addHeaderLine('Location', $url);
                 $response->setStatusCode(302);
                 $response->sendHeaders();
                 return $response;
             }
             $controller->setApartmentID($apartmentId);
         }
     }, 100);
 }
Exemple #19
0
 /**
  * @param MvcEvent $e
  */
 public static function onRoute(MvcEvent $e)
 {
     if (!$e->getRequest() instanceof HttpRequest) {
         return;
     }
     $app = $e->getTarget();
     $rbacService = $app->getServiceManager()->get('ZfcRbac\\Service\\Rbac');
     $match = $app->getMvcEvent()->getRouteMatch();
     $controller = $match->getParam('controller');
     $action = $match->getParam('action');
     $resource = sprintf('%s:%s', $controller, $action);
     try {
         if ($rbacService->getFirewall('controller')->isGranted($resource)) {
             return;
         }
     } catch (InvalidArgumentException $ex) {
         //if Exception, default to unauthorized
     }
     try {
         $e->setError($rbacService::ERROR_CONTROLLER_UNAUTHORIZED)->setParam('identity', $rbacService->getIdentity())->setParam('controller', $controller)->setParam('action', $action);
         $app->getEventManager()->trigger('dispatch.error', $e);
     } catch (InvalidArgumentException $ex) {
         return;
     }
 }
 /**
  * Inject a template into the view model, if none present
  *
  * Template is derived from the controller found in the route match, and,
  * optionally, the action, if present.
  *
  * @param  MvcEvent $e
  * @return void
  */
 public function injectTemplate(MvcEvent $e)
 {
     $model = $e->getResult();
     if (!$model instanceof ViewModel) {
         return;
     }
     $template = $model->getTemplate();
     if (!empty($template)) {
         return;
     }
     $routeMatch = $e->getRouteMatch();
     $controller = $e->getTarget();
     if (is_object($controller)) {
         $controller = get_class($controller);
     }
     if (!$controller) {
         $controller = $routeMatch->getParam('controller', '');
     }
     $module = $this->deriveModuleNamespace($controller);
     $controller = $this->deriveControllerClass($controller);
     $template = $this->inflectName($module);
     if (!empty($template)) {
         $template .= '/';
     }
     $template .= $this->inflectName($controller);
     $action = $routeMatch->getParam('action');
     if (null !== $action) {
         $template .= '/' . $this->inflectName($action);
     }
     $model->setTemplate($template);
 }
Exemple #21
0
 public function onBootstrap(MvcEvent $e)
 {
     /*
             $eventManager        = $e->getApplication()->getEventManager();
             $moduleRouteListener = new ModuleRouteListener();
             $moduleRouteListener->attach($eventManager);
     
     $this->initSession(array(
     'remember_me_seconds' => 180,
     'use_cookies' => true,
     'cookie_httponly' => true,
     ));
     */
     $eventManager = $e->getApplication()->getEventManager();
     $eventManager->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         //echo '<pre>'; print_r($config);exit;
         if (isset($config['module_layouts'][$moduleNamespace])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]);
         }
     }, 100);
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $this->initSession(array('remember_me_seconds' => 180, 'use_cookies' => true, 'cookie_httponly' => true));
 }
Exemple #22
0
 public function checkAcl(MvcEvent $e)
 {
     $userRole = 'guest';
     $app = $e->getTarget();
     $serviceManager = $app->getServiceManager();
     $authService = $serviceManager->get('AuthService');
     if ($authService->hasIdentity()) {
         $user = $authService->getStorage()->read();
         $userRole = $user->role;
     }
     $controller = $e->getRouteMatch()->getMatchedRouteName('controller');
     $action = $e->getRouteMatch()->getParam('action');
     $route = $controller . '/' . $action;
     $allAccess = false;
     if ($e->getViewModel()->acl->hasResource($controller . '/all')) {
         if ($e->getViewModel()->acl->isAllowed($userRole, $controller . '/all')) {
             $allAccess = true;
         }
     }
     if (!$allAccess) {
         if ($e->getViewModel()->acl->hasResource($route)) {
             if (!$e->getViewModel()->acl->isAllowed($userRole, $route)) {
                 $e->getRouteMatch()->setParam('controller', 'Frontend\\Controller\\Index')->setParam('action', 'index');
             }
         } else {
             $e->getRouteMatch()->setParam('controller', 'Frontend\\Controller\\Index')->setParam('action', 'index');
         }
     }
 }
Exemple #23
0
 /**
  * Attaches the ApiErrorListener on the render event
  *
  * @param MvcEvent $e
  */
 public function onBootstrap($e)
 {
     $app = $e->getTarget();
     $services = $app->getServiceManager();
     $events = $app->getEventManager();
     $events->attach($services->get('Common\\Listeners\\ApiErrorListener'));
 }
Exemple #24
0
 public function onBootstrap(MvcEvent $e)
 {
     $application = $e->getTarget();
     $serviceManager = $application->getServiceManager();
     $eventManager = $application->getEventManager();
     $events = $eventManager->getSharedManager();
 }
Exemple #25
0
 public function checkLoginChangeLayout(MvcEvent $e)
 {
     if ($e->getApplication()->getServiceManager()->get('AuthService')->hasIdentity()) {
         $controller = $e->getTarget();
         $controller->layout('layout/user');
     }
 }
Exemple #26
0
 public function onBootstrap(MvcEvent $e)
 {
     $application = $e->getTarget();
     $eventManager = $application->getEventManager();
     $sm = $application->getServiceManager();
     $logbug = $sm->get('LogBugServiceError');
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($event) use($sm) {
         $exception = $event->getParam('exception');
         if (!$exception) {
             return;
         }
         $config = $sm->get('Config');
         $ignoreCode = $config['logbug']['email']['ignore']['code'];
         if (in_array($exception->getCode(), $ignoreCode)) {
             return;
         }
         $mail = $sm->get('LogBug\\Service\\Email');
         $mail->send($exception, 'EXCEPTION_DISPATCH_ERROR');
     });
     $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, function ($event) use($sm) {
         $exception = $event->getParam('exception');
         if (!$exception) {
             return;
         }
         $config = $sm->get('Config');
         $ignoreCode = $config['logbug']['email']['ignore']['code'];
         if (in_array($exception->getCode(), $ignoreCode)) {
             return;
         }
         $mail = $sm->get('LogBug\\Service\\Email');
         $mail->send($exception, 'EXCEPTION_RENDER_ERROR');
     });
 }
 public function onBootstrap(MvcEvent $e)
 {
     $events = $e->getApplication()->getEventManager()->getSharedManager();
     $config = $e->getApplication()->getServiceManager()->get('config');
     // configure session
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config['session']);
     $events->attach('ZfcUser\\Service\\User', 'register.post', function ($e) {
         $user = $e->getParam('user');
         // User account object
         $form = $e->getParam('form');
         // Form object
         // Perform your custom action here
         /* @var $sm ServiceLocatorInterface */
         $sm = $e->getTarget()->getServiceManager();
         /* @var $em \Doctrine\ORM\EntityManager */
         $em = $sm->get('doctrine.entitymanager.orm_default');
         $userRole = $em->find(__NAMESPACE__ . '\\Entity\\UserRole', DEFAULT_ROLE);
         if (NULL !== $userRole) {
             $user->addRole($userRole);
             $em->persist($user);
             $em->flush();
         }
     });
 }
Exemple #28
0
 /**
  * Handle layout on 'dispatch' event.
  *
  * @param MvcEvent $e
  */
 public function onDispatch(MvcEvent $e)
 {
     $routeMatch = $e->getRouteMatch();
     $activeController = $routeMatch->getParam('controller');
     $listController1Columns = ['Application\\Controller\\Index', 'Application\\Controller\\Credits', 'Application\\Controller\\Contributors'];
     $controller = $e->getTarget();
     if (!$e->getViewModel()->terminate()) {
         if (!in_array($activeController, $listController1Columns)) {
             $controllerClass = get_class($controller);
             $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
             $fbMeta['title'] = 'Real Live Learn ZF2';
             $fbMeta['description'] = '';
             // set title prepend of module desc...
             $moduleDetail = $this->services->get('Doctrine\\ORM\\EntityManager')->getRepository('Application\\Entity\\ModuleList')->findOneBy(['moduleName' => $moduleNamespace]);
             if ($moduleDetail) {
                 $this->services->get('ViewHelperManager')->get('headTitle')->prepend($moduleDetail->getModuleDesc());
                 $title = $moduleDetail->getModuleDesc();
                 $description = $moduleDetail->getModuleDesc();
                 $fbMeta['title'] = $title . '-' . $fbMeta['title'];
                 $fbMeta['description'] = $description . '-' . $fbMeta['description'];
             }
             $e->getViewModel()->setVariable('fbMeta', $fbMeta);
             $e->getViewModel()->setVariable('modulenamespace', $moduleNamespace);
             $controller->layout('layout/2columns');
         } else {
             $controller->layout('layout/1columns');
         }
     }
 }
Exemple #29
0
 public function onBootstrap(MvcEvent $e)
 {
     // You may not need to do this if you're doing it elsewhere in your
     // application
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     //                      $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function($e) {
     //             $result = $e->getResult();
     //             $result->setTerminal(TRUE);
     //
     //            });
     $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'onDispatchError'), 100);
     //           $eventManager->attach('dispatch', array($this,'onDispatchError'), 100);
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         $routeMatch = $e->getRouteMatch();
         $actionName = strtolower($routeMatch->getParam('action', 'not-found'));
         // get the action name
         if (isset($config['module_layouts'][$moduleNamespace][$actionName])) {
             $controller->layout($config['module_layouts'][$moduleNamespace][$actionName]);
         } elseif (isset($config['module_layouts'][$moduleNamespace]['default'])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]['default']);
         }
     }, 100);
 }
 /**
  * Listener for bootstrap event
  *
  * Attaches a render event.
  *
  * @param  \Zend\Mvc\MvcEvent $e
  */
 public function onBootstrap($e)
 {
     $app = $e->getTarget();
     $services = $app->getServiceManager();
     $events = $app->getEventManager();
     $events->attach(MvcEvent::EVENT_RENDER, array($this, 'onRender'), 100);
 }