private function getModulos() { $login = new Login(); $user = $login->getUser(); $permissoes = $this->getEntityManager()->getRepository($this->repositoryPermissoes)->findBy(array("idUsuario" => $user['id'])); $modulos = array(); // PEGANDO OS MODULOS BASES foreach ($permissoes as $permissao) { $modulo = $this->getEntityManager()->getRepository($this->repositoryModulos)->findOneBy(array("id" => $permissao->getIdModulo(), "modulo" => NULL)); if ($modulo) { $modulos[] = array("id" => $modulo->getId(), "titulo" => $modulo->gettitulo(), "modulo" => $modulo->getModulo(), "route" => $modulo->getRoute()); } } // PEGANDO SUBMODULOS foreach ($modulos as $key => $modulo) { $submodulos = $this->getEntityManager()->getRepository($this->repositoryModulos)->findBy(array("modulo" => $modulo['id'])); if ($submodulos) { foreach ($submodulos as $submodulo) { $modulos[$key]['submodulos'][] = array("id" => $submodulo->getId(), "titulo" => $submodulo->gettitulo(), "modulo" => $submodulo->getModulo(), "route" => $submodulo->getRoute()); } } } if (!empty($modulos)) { return $modulos; } $this->flashMessenger()->addErrorMessage("Aparentemente você não possui nenhuma permissão dentro do sistema. Por favor, contate um dos administradores do sistema."); return $this->redirect()->toRoute("home"); }
private function redirectAfterLogin() { $login = new Login(); $user = $login->getUser(); if (!$user) { return false; } $redirect = $login->getRedirectAfterLogin(); $login->setRedirectAfterLogin(); if ($redirect) { return $this->redirect()->toUrl($redirect); } else { $route = false; $permissoes = $this->getEntityManager()->getRepository($this->repositoryPermissoes)->findBy(array("idUsuario" => $user['id'])); foreach ($permissoes as $permissao) { $modulo = $this->getEntityManager()->getRepository($this->repositoryModulos)->findOneBy(array("id" => $permissao->getIdModulo())); if (!is_null($modulo->getRoute()) && !$route) { $route = $modulo->getRoute(); } } if (!$route) { $this->flashMessenger()->addErrorMessage("Aparentemente você não possui nenhuma permissão dentro do sistema. Por favor, contate um dos administradores do sistema."); return $this->redirect()->toRoute("home"); } else { $this->redirect()->toRoute($route); } } }