public function seedCurrentMessages() { $helper = new FlashMessenger(); $helper->setSessionManager($this->session); $helper->addMessage('foo'); $helper->addMessage('bar'); $helper->addInfoMessage('bar-info'); $helper->addSuccessMessage('bar-success'); $helper->addErrorMessage('bar-error'); }
public function onRoute(EventInterface $poEvent) { $loApplication = $poEvent->getApplication(); $loRouteMatch = $poEvent->getRouteMatch(); $loServiceManager = $loApplication->getServiceManager(); $loEventManager = $loApplication->getEventManager(); $loEvents = $loEventManager->getSharedManager(); $loSession = new Session(); $loUser = $loSession->getRegister('OnionAuth'); $laMenu = Config::getAppOptions('menu'); $lsRole = Acl::DEFAULT_ROLE; //guest if ($loUser !== null) { $lnGroup = $loUser->get('UserGroup_id'); if (isset($laMenu['groups'][$lnGroup])) { $lsRole = $laMenu['groups'][$lnGroup]; } } $laMenu = $laMenu[$lsRole]; $loEvents->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($event) use($laMenu, $loUser) { $loController = $event->getTarget(); $loController->layout()->laMenu = $laMenu; $loController->layout()->loUser = $loUser; $loController->layout()->loController = $loController; }, 100); $lsController = $loRouteMatch->getParam('__CONTROLLER__'); $lsAction = $loRouteMatch->getParam('action'); if (empty($lsController)) { $lsController = 'Index'; } if (empty($lsAction)) { $lsAction = 'index'; } $laConfigAcl = Config::getAppOptions('acl'); $loAcl = new Acl($laConfigAcl); if (!$loAcl->hasResource($lsController)) { throw new \Exception('Resource ' . $lsController . ' not defined'); } Debug::debug("Route: {$lsController}/{$lsAction}"); if (!$loAcl->isAllowed($lsRole, $lsController, $lsAction)) { if ($lsController != 'Index' && $lsAction != 'index') { $loFlashMessenger = new FlashMessenger(); $loFlashMessenger->addMessage(array('id' => 'Access-' . microtime(true), 'hidden' => false, 'push' => false, 'type' => 'danger', 'msg' => Translator::i18n('Você não tem permissão para executar esta ação!'))); } $lsUrl = $poEvent->getRouter()->assemble(array(), array('name' => 'access', 'query' => array('urlFrom' => base64_encode($_SERVER['REQUEST_URI'])))); $loResponse = $poEvent->getResponse(); $loResponse->getHeaders()->addHeaderLine('Location', $lsUrl); $loResponse->setStatusCode(302); $loResponse->sendHeaders(); exit; } }