public async Task <IActionResult> AlterarSenha( [FromBody, SwaggerParameter("Senha atual, nova senha e confirmação da nova senha.", Required = true)] AlterarSenhaUsuarioViewModel model) { var entrada = new AlterarSenhaUsuarioEntrada(base.ObterEmailUsuarioClaim(), model.Senha, model.SenhaNova, model.ConfirmarSenhaNova); return(new ApiResult(await _usuarioServico.AlterarSenha(entrada))); }
public async Task <ISaida> AlterarSenha(AlterarSenhaUsuarioEntrada entrada) { if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } var usuario = await _usuarioRepositorio.ObterPorEmailSenha(entrada.Email, entrada.SenhaAtual, true); // Verifica se o usuário com o e-mail e a senha (hash) foi encontrado no banco this.NotificarSeNulo(usuario, "Usuário não encontrado. Verifique a senha informada."); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } usuario.AlterarSenha(entrada.SenhaNova); await _uow.Commit(); return(new Saida(true, new[] { "Senha de acesso alterada com sucesso." }, null)); }