示例#1
0
 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;
         }
     }
 }