public IHttpActionResult PrimeiroAcesso(UsuarioDTO usuario) { if (usuario == null) { return(BadRequest("Usuário não informado!")); } usuario.Login = usuario.Login.ToLower(); bool usuarioExiste = usuariosService.UsuarioExiste(usuario.Login); Funcionario funcionario; if (!usuarioExiste) { if (!funcionariosService.FuncionarioExiste(usuario.MatriculaFuncionario, usuario.CodigoEmpresa)) { return(BadRequest($"Matrícula {usuario.MatriculaFuncionario} não cadastrada!")); } funcionario = funcionariosService.GetFuncionario(usuario.MatriculaFuncionario, usuario.CodigoEmpresa); funcionario.Email = usuario.Email; funcionariosService.AddOrUpdateFuncionario(funcionario); Usuario novoUsuario = new Usuario { Login = usuario.Login, FuncionarioId = funcionario.Id, Nome = funcionario.Nome, Perfil = Perfil.ELEITOR, Senha = CryptoGraph.Encrypt(usuario.Senha) }; usuariosService.AddOrUpdateUsuario(novoUsuario); return(Ok()); } if (!funcionariosService.FuncionarioExiste(usuario.MatriculaFuncionario, usuario.CodigoEmpresa)) { return(BadRequest($"Matrícula {usuario.MatriculaFuncionario} não cadastrada!")); } funcionario = funcionariosService.GetFuncionario(usuario.MatriculaFuncionario, usuario.CodigoEmpresa); funcionario.Email = usuario.Email; funcionariosService.AddOrUpdateFuncionario(funcionario); Usuario usuarioDB = usuariosService.GetUsuario(usuario.Login); usuarioDB.Senha = CryptoGraph.Encrypt(usuario.Senha); usuariosService.AddOrUpdateUsuario(usuarioDB); return(Ok()); }
public IHttpActionResult Login(UsuarioSenhaDTO usuario) { if (usuario == null || usuario.Login == null || usuario.Senha == null) { return(BadRequest()); } Usuario user; try { Modelo db = new Modelo(); user = db.Usuarios.Find(usuario.Login); if (user == null) { return(BadRequest("Usuário não encontrado!")); } string senhaCrypt = CryptoGraph.Encrypt(usuario.Senha); if (user.Senha != senhaCrypt) { return(BadRequest("Senha incorreta!")); } string token = TokenServices.GenerateToken(user.Login, roles: user.Perfil); var userObj = new { Token = token, Usuario = user.Nome, usuario.Login, user.FuncionarioId, user.Funcionario?.MatriculaFuncionario, user.Funcionario?.CodigoEmpresa, user.Perfil }; db.Dispose(); return(Ok(userObj)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, ex)); } }
public IHttpActionResult RecuperarSenha(UsuarioSenhaDTO usuario) { if (string.IsNullOrEmpty(usuario.Login)) { return(BadRequest("É necessário informar o login!")); } if (string.IsNullOrEmpty(usuario.Senha)) { return(BadRequest("É necessário informar a senha!")); } if (string.IsNullOrEmpty(usuario.CodigoRecuperacao)) { return(BadRequest("É necessário informa o código de recuperação!")); } try { Usuario usuarioDB = usuariosService.GetUsuario(usuario.Login); if (usuario.CodigoRecuperacao != usuarioDB.CodigoRecuperacao) { return(BadRequest("Código de Recuperação inválido!")); } usuarioDB.Senha = CryptoGraph.Encrypt(usuario.Senha); usuarioDB.CodigoRecuperacao = null; usuariosService.AddOrUpdateUsuario(usuarioDB); return(Ok("Senha alterada com Sucesso!")); } catch (UsuarioNaoEncontradoException) { return(Content(HttpStatusCode.NotFound, "Usuário não encontrado!")); } catch { return(Content(HttpStatusCode.InternalServerError, "Ocorreu um erro desconhecido. Por favor, entre em contato com o suporte.")); } }
public string Decrypt(string texto) { return(CryptoGraph.Decrypt(texto)); }
public string Encrypt(string texto) { return(CryptoGraph.Encrypt(texto)); }