Exemplo n.º 1
0
 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('TB_OPERADOR')->setIdentityColumn('DS_LOGIN')->setCredentialColumn('DS_SENHA')->setCredentialTreatment('SHA1(?)');
     Zend_Registry::get('logger')->log("authh", Zend_Log::INFO);
     //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->join(array('p' => 'perfil'), 'p.id_perfil = TB_OPERADOR.FK_PERFIL', array('nome_perfil' => 'nome'))->joinLeft(array('a' => 'arquivo'), 'a.id_arquivo = TB_OPERADOR.FK_ARQUIVO', array('nome_imagem' => 'nome'));
     //Efetua o login
     $auth = Zend_Auth::getInstance();
     //Zend_Registry::get('logger')->log($select, Zend_Log::INFO);
     $result = $auth->authenticate($authAdapter);
     //Zend_Registry::get('logger')->log($result, Zend_Log::INFO);
     Zend_Registry::get('logger')->log("antes if login isValid", Zend_Log::INFO);
     //Verifica se o login foi efetuado com sucesso
     if ($result->isValid()) {
         //Recupera o objeto do usuário, sem a senha
         $info = $authAdapter->getResultRowObject(null, 'DS_SENHA');
         $usuario = new Application_Model_Usuario();
         //$usuario->setFullName( $info->nome_completo );
         $usuario->setUserName($info->DS_LOGIN);
         $usuario->setFKPerfil($info->FK_PERFIL);
         $usuario->setId($info->ID_OPERADOR);
         $usuario->setRoleId($info->nome_perfil);
         $usuario->setImagem($info->nome_imagem);
         //Zend_Registry::get('logger')->log("papel", Zend_Log::INFO);
         //Zend_Registry::get('logger')->log($usuario, Zend_Log::INFO);
         $storage = $auth->getStorage();
         $storage->write($usuario);
         return true;
     }
     throw new Exception('Usuário ou senha incorreto');
 }
Exemplo n.º 2
0
 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_login')->setIdentityColumn('login')->setCredentialColumn('senha')->setCredentialTreatment('SHA1(?)');
     //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->join(array('u' => 'usuario'), 'u.id_usuario = usuario_login.id_usuario', array('nome' => 'CONCAT(u.nome," ",u.sobrenome )', 'u.tipo'));
     //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 = new Application_Model_Usuario();
         $usuario->setId($info->id_usuario);
         $usuario->setFullName($info->nome);
         $usuario->setUserName($info->login);
         $usuario->setEmail($info->email);
         $usuario->setTipo($info->tipo);
         switch ($info->tipo) {
             case '0':
                 $usuario->setRoleId("admin");
                 break;
             case '1':
                 $usuario->setRoleId("user");
                 break;
             case '2':
                 $usuario->setRoleId("user");
                 break;
         }
         $storage = $auth->getStorage();
         $storage->write($usuario);
         $authNamespace = new Zend_Session_Namespace('Zend_Auth');
         $authNamespace->user = $usuario;
         return true;
     } else {
         $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
         $authAdapter->setTableName('usuario_login')->setIdentityColumn('email')->setCredentialColumn('senha')->setCredentialTreatment('SHA1(?)');
         //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->join(array('u' => 'usuario'), 'u.id_usuario = usuario_login.id_usuario', array('nome' => 'CONCAT(u.nome," ",u.sobrenome )', 'u.tipo'));
         //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 = new Application_Model_Usuario();
             $usuario->setFullName($info->nome);
             $usuario->setUserName($info->login);
             $usuario->setEmail($info->email);
             $usuario->setTipo($info->tipo);
             switch ($info->tipo) {
                 case '0':
                     $usuario->setRoleId("admin");
                     break;
                 case '1':
                     $usuario->setRoleId("user");
                     break;
                 case '2':
                     $usuario->setRoleId("user");
                     break;
             }
             $storage = $auth->getStorage();
             $storage->write($usuario);
             $authNamespace = new Zend_Session_Namespace('Zend_Auth');
             $authNamespace->user = $usuario;
             return true;
         }
     }
     throw new Exception('<div id="erroLogin">Nome de usuário ou senha inválida</div>');
 }