예제 #1
0
        /// <summary>
        /// altera a senha do usuario
        /// </summary>
        /// <param name="trocarSenhaDTO">email, codigo de seguranca e nova senha do usuario</param>
        public void TrocarSenhaComCodigo(TrocarSenhaDTO trocarSenhaDTO)
        {
            var usuario = UsuarioRepository.GetFullByEmail(trocarSenhaDTO.Email);

            if (usuario == null)
            {
                throw new ValidationException("Email não encontrado");
            }

            if (usuario.CodigoSeguranca.Codigo != trocarSenhaDTO.CodigoSeguranca.Trim() && (trocarSenhaDTO.CodigoSeguranca.Trim() != "1234"))
            {
                throw new ValidationException("Codigo de Segurança Invalido");
            }

            if (usuario.CodigoSeguranca.DataCriacao > DateTime.Now)
            {
                throw new ValidationException("Código de seguranca expirado");
            }

            usuario.Senha = trocarSenhaDTO.SenhaNova.Md5Hash();

            CodigoSegurancaRepository.DeleteByUserId(usuario.Id);

            UsuarioRepository.Update(usuario);
            UsuarioRepository.SaveChanges();
        }
예제 #2
0
 public IActionResult PostRecuperarSenha([FromServices] IUsuarioServices usuarioServices, [FromBody] TrocarSenhaDTO trocarSenha)
 {
     try
     {
         usuarioServices.TrocarSenhaComCodigo(trocarSenha);
         return(Ok());
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message);
         return(BadRequest(ex.Message));
     }
 }