/** * Carrega a autenticação do usuario de acordo com o retorno da validação do certificado * * @param string $sLoginUsuario * @throws Exception * @return boolean */ public function autenticaUsuario($sLoginUsuario) { try { $oEntityManager = Zend_Registry::get('em'); $oAuthAdapter = new Doctrine_Auth_Adapter($oEntityManager, 'Administrativo\\Usuario', 'login', 'senha'); $oAuthAdapter->setIdentity($sLoginUsuario); $oAuthAdapter->setCredential(''); $oAuth = Zend_Auth::getInstance(); $iStatus = $oAuth->authenticate($oAuthAdapter)->getCode(); if (in_array($iStatus, array(1, -3))) { $sLogin = $oAuth->getIdentity(); $oUser = Administrativo_Model_Usuario::getByAttribute('login', $sLoginUsuario); if ($oUser && $oUser->getHabilitado()) { Zend_Auth::getInstance()->getStorage()->write(array('id' => $oUser->getId(), 'login' => $sLoginUsuario)); } else { $this->oModeloImportacao->setMensagemErro('E157', 'Usuário não habilitado'); } } else { $this->oModeloImportacao->setMensagemErro('E157', 'Usuário Inválido'); } /** * Verifica se ocorreu algum erro no processamentos dos dados na importacao */ if ($this->oModeloImportacao->getErro()) { return $this->oModeloImportacao->processaErroWebService(NULL); } /** * Reecreve os dados e permissões de sessão na ACL */ new DBSeller_Acl_Setup(TRUE); /** * Verifica a permissão de execução da ação conforme liberação do usuário */ $sAmbiente = Zend_Controller_Front::getInstance()->getRequest()->getActionName(); if (!DBSeller_Plugin_Auth::checkPermission("webservice/{$sAmbiente}/recepcionar-lote-rps")) { return FALSE; } return TRUE; } catch (Exception $oErro) { throw new Exception($oErro->getMessage(), $oErro->getCode()); } }