protected function save()
 {
     $this->getEntity()->setOptions(array('senha' => md5($_POST['password']), 'data_troca_senha' => 'now()'));
     $this->getDataMapper()->save($this->getEntity());
     $linkToReset = $_SERVER['HTTP_HOST'] . $this->getRequest()->getBaseurl() . '/' . 'Usuario/AlterarSenha';
     UsuarioMailer::updatedPassword($user = $this->getEntity(), $linkToReset);
 }
 protected function sendResetPasswordMail()
 {
     $user = $this->getEntity();
     if (empty($user->email)) {
         $this->messenger()->append('Parece que seu usuário não possui um e-mail definido, por favor, ' . 'solicite ao administrador do sistema para definir seu e-mail (em DRH > Cadastro ' . 'de funcionários) e tente novamente.', 'error');
     } else {
         $token = $this->setTokenRedefinicaoSenha();
         if ($token != false) {
             $link = $_SERVER['HTTP_REFERER'] . "?token={$token}";
             if (UsuarioMailer::passwordReset($user, $link)) {
                 $successMsg = 'Enviamos um e-mail para você, por favor, clique no link recebido para redefinir sua senha.';
                 $this->messenger()->append($successMsg, 'success');
             } else {
                 $errorMsg = 'Não conseguimos enviar um e-mail para você, por favor, tente novamente mais tarde.';
                 $this->messenger()->append($errorMsg, 'error');
             }
         }
     }
 }