public function loginAction() { $this->flashMessenger = $this->_helper->FlashMessenger; $this->view->messages = $this->flashMessenger->getMessages(); // if (Zend_Registry::getInstance()->get('auth')->hasIdentity()) { // $this->_redirect('/painel'); // } // action body if ($this->getRequest()->isPost()) { $email = $this->_request->getPost('email'); $senha = $this->_request->getPost('password'); $url = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri(); try { $_serviceAuth = new AuthService(); $result = $_serviceAuth->login($email, $senha); if (isset($result['error'])) { //login invalido $this->_helper->flashMessenger->addMessage('Login ou senha incorreta'); $this->_redirect($url, array('prependBase' => false)); } else { //login válido $usuario = new Usuarioacl(); $usuario->setFullName($result['name']); $usuario->setEmail($result['email']); $usuario->setRoleId($result['user_type']); $usuario->setUnitId($result['unit_id']); $usuario->setRoleLabel($result['user_type']); $usuario->setId($result['id']); $usuario->setResources($result['resources']); $auth = Zend_Auth::getInstance(); $storage = $auth->getStorage(); $storage->write($usuario); $seconds = 10 * 365 * 24 * 60 * 60; Zend_Session::rememberMe($seconds); $this->_redirect($url, array('prependBase' => false)); } } catch (Exception $exc) { // echo $exc->getTraceAsString(); throw $exc; } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { //fazendo funcionar a autenticação por modulos if ($request->getModuleName() == 'default') { $controller2 = $request->getControllerName(); } else { $controller2 = $request->getModuleName(); //.':'.$request->getControllerName(); } //SEO URLs $action = $request->getActionName(); // if($controller2 == 'cursos'){ // //verificar se destino é um curso // $_serviceCourse = new CourseService(); // $course = $_serviceCourse->getByFriendlyName($action); // if ($course['friendly_name'] == $action) { // $request->setParams(array('curso' => $action)); // $request->setActionName('detalhes'); // } // }else if($controller2 == 'noticias'){ // //verificar se é uma noticia // $_serviceNews = new NewsService(); // $news = $_serviceNews->getBySlug($action); // if ($news['friendly_title'] == $action) { // $request->setParams(array('title' => $action)); // $request->setActionName('detalhes'); // } // } // if(!$this->_acl->has($controller2)){ // $_serviceUnits = new UnitService(); // $unit = $_serviceUnits->getBySlug($controller2); // if ($unit['friendly_title'] == $controller2) { // $request->setControllerName('unidades'); // $request->setParams(array('unidade' => $controller2)); // $request->setActionName('detalhes'); // $controller2 = 'unidades'; // } // } if (!$this->_auth->hasIdentity()) { //SETAR O USUARIO COMO GUEST CASO ELE NAO ESTEJA LOGADO $auth = Zend_Auth::getInstance(); $usuario = new Usuarioacl(); $usuario->setRoleId('guest'); $usuario->setRoleLabel('guest'); $storage = $auth->getStorage(); $storage->write($usuario); $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } if (!$this->_unknowRoute($controller2)) { $controller = $this->_forbiddenRoute['controller']; $action = $this->_forbiddenRoute['action']; $module = $this->_forbiddenRoute['module']; } if (!$this->_isAuthorized($controller2, $request->getActionName())) { if ($controller2 == 'dashboard') { $controller = 'auth'; $action = 'login'; $module = 'dashboard'; } else { $controller = $this->_notLoggedRoute['controller']; $action = $this->_notLoggedRoute['action']; $module = $this->_notLoggedRoute['module']; } } else { $user = $this->_auth->getIdentity(); if ($controller2 == 'dashboard' && $user->getRoleLabel() == 'dashboard') { $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } else { if ($controller2 == 'gestao' && $user->getRoleLabel() == 'gestao') { $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } else { $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } } } $request->setControllerName($controller); $request->setActionName($action); $request->setModuleName($module); }