예제 #1
0
 public function loginAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
     } else {
         $this->_helper->layout->disableLayout();
     }
     $form = new Default_Form_Login();
     $this->view->form = $form;
     $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
     $this->view->messages = $this->_flashMessenger->getMessages();
     //Verifica se existem dados de POST
     if ($this->getRequest()->getPost()) {
         $data = $this->getRequest()->getPost();
         //Formulário corretamente preenchido?
         if ($form->isValid($data)) {
             $login = $form->getValue('login');
             $senha = $form->getValue('senha');
             $model_user = new Default_Model_Usuario();
             $ativo = $model_user->buscarPorLoginUsuarios($login);
             if ($ativo['status_usuario'] == 1) {
                 $senhaAlterada = $ativo['senha_alterada'];
                 try {
                     $auth = new Default_Model_Login();
                     $auth->login($login, $senha);
                     if ($senhaAlterada == 0) {
                         return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'index', 'action' => 'index'), null, true);
                     } else {
                         return $this->_helper->redirector->goToRoute(array('module' => 'cadastros', 'controller' => 'usuarios', 'action' => 'alterar-senha-primeiro-acesso'), null, true);
                     }
                 } catch (Exception $e) {
                     echo "<script type='text/javascript'>";
                     echo "alert('Combinação de Usuário + Senha digitada está incorreta!');";
                     echo "</script>";
                 }
             } else {
                 echo "<script type='text/javascript'>";
                 echo "alert('O acesso a este usuário foi negado por o mesmo encontrar-se inativo em nosso sistema.');";
                 echo "</script>";
             }
         } else {
             $form->populate($data);
         }
     }
     ## Log da transação ##
     //        $log = new Acesso_Log;
     //        $log->Log();
 }
예제 #2
0
파일: Login.php 프로젝트: dcsystems/goepa
 /**
  * Classe de Login que utiliza modelo de Usuarios.
  *
  * @package default
  * @author  Marcos Amazonas
  */
 public static function login($login, $senha)
 {
     $dbAdapter = Zend_Db_Table::getDefaultAdapter();
     //Inicia o adaptador Zend_Auth para banco de dados
     $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
     $authAdapter->setTableName('usuario')->setIdentityColumn('login_usuario')->setCredentialColumn('senha_usuario')->setCredentialTreatment('MD5(?)');
     //Define os dados para processar o login
     $authAdapter->setIdentity($login)->setCredential($senha);
     //Faz inner join dos dados do perfil no SELECT do Auth_Adapter
     $select = $authAdapter->getDbSelect();
     $select->joinInner(array('p' => 'tb_perfil_usuario'), 'p.id = usuario.id_perfil', array('nome_perfil' => 'nome', 'id_perfil' => 'id'));
     //Efetua o login
     $auth = Zend_Auth::getInstance();
     $result = $auth->authenticate($authAdapter);
     //Verifica se o login foi efetuado com sucesso
     if ($result->isValid()) {
         //Recupera o objeto do usuário, sem a senha
         $info = $authAdapter->getResultRowObject(null, 'senha_usuario');
         $model_usuario = new Default_Model_Usuario();
         $model_usuario->setFullName($info->nome_usuario);
         $model_usuario->setUserName($info->login_usuario);
         $model_usuario->setIdUsuario($info->id);
         $model_usuario->setIdPerfil($info->id_perfil);
         $model_usuario->setNomePerfil($info->nome_perfil);
         $model_usuario->setRoleId($info->nome_perfil);
         //            $usuario = $model_usuario->buscarPorLoginUsuarios($login);
         //            $perfil = $model_usuario->buscarPerfil($usuario['id_perfil']);
         //            $this->view->nome_perfil = $perfil;
         //
         //            var_dump($perfil);
         //            exit;
         //                $model_usuario->setRoleId("admin");
         //            } else {
         //                $model_usuario->setRoleId("guest");
         //            }
         //$model_usuario->setRoleId($info->nome_perfil);
         $storage = $auth->getStorage();
         $storage->write($model_usuario);
         return true;
     } else {
         throw new Exception('Nome de usuário ou senha inválida.');
     }
 }