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