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; } } }