Exemplo n.º 1
0
 /**
  * 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;
     }
 }