/** * Gera um link com hash e envia para o email do usuario * * @param $emailUsuario * * @return bool */ public function esqueciSenha($emailUsuario) { /** @var \Application\Entity\Usuario $usuario */ $usuario = $this->getUserMapper()->findByEmail($emailUsuario); if (!$usuario) { return false; } $link = $usuario->getId(); $this->getUserMapper()->update($usuario); /** @var Url $url */ $url = $this->getServiceManager()->get('viewhelpermanager')->get('url'); $link = $url(RotasConst::ALTERAR_SENHA, array(), array('query' => array('userkey' => $link), 'force_canonical' => true)); $email = new EmailUtil($this->getServiceManager()); $email->setSender(ReiniciarSenhaEmail::getNomeRemetente(), ReiniciarSenhaEmail::getRemetente()); $email->sendMail($usuario->getNomUsuario(), $usuario->getEmail(), ReiniciarSenhaEmail::getAssunto(), ReiniciarSenhaEmail::getEmail(array('login' => $usuario->getUsername(), 'link' => $link))); return true; }
/** * Trata o erro ocorrido na autenticação do usuário * * @param $auth * @return bool|\Zend\Http\Response */ private function processaErroAutenticacao($auth) { return true; switch ($auth->getCode()) { case UsuarioConst::ERRO_SENHA_EXPIRADA: return $this->redirect()->toUrl($this->url()->fromRoute(Rotas::ALTERAR_SENHA)); break; case UsuarioConst::ERRO_PRIMEIRO_ACESSO: $this->flashMessenger()->addMessage($auth, 'loginAuth'); return $this->redirect()->toUrl($this->url()->fromRoute(Rotas::VALIDAR_CHAVE_ACESSO)); break; case UsuarioConst::ERRO_USUARIO_INATIVO: /** @var Usuario $user */ $user = $auth->getIdentity(); /** @var UsuarioDao $usuarioDao */ $usuarioDao = $this->getServiceLocator()->get('UsuarioDao'); /** @var Usuario $gestor */ $gestor = $usuarioDao->getGestorUnidade($user->getUnidadeOrganizacional()); if (!$gestor) { return false; } $email = new EmailUtil($this->getServiceLocator()); $email->setSender(UsuarioSemPerfilAssociadoEmail::getNomeRemetente(), UsuarioSemPerfilAssociadoEmail::getRemetente()); $email->sendMail($gestor->getNomUsuario(), $gestor->getEmail(), UsuarioSemPerfilAssociadoEmail::getAssunto(), UsuarioSemPerfilAssociadoEmail::getEmail(array('nome' => $user->getNomUsuario(), 'login' => $user->getUsername()))); return true; break; default: break; } }