Ejemplo n.º 1
0
        public RetornoModel <UsuarioModel> Login(string cpf, string senha)
        {
            RetornoModel <UsuarioModel> result = new RetornoModel <UsuarioModel> {
                Mensagem = "Usuário ou senha incorretos."
            };

            try
            {
                var user = _ado.CarregarPorCPF(cpf);
                if (user != null)
                {
                    if (CriptografiaUtil.VerificarSenha(user.Senha, senha))
                    {
                        result.Retorno  = user.MapTo <UsuarioModel>();
                        result.Sucesso  = true;
                        result.Mensagem = "OK";
                    }
                }
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }

            return(result);
        }
Ejemplo n.º 2
0
        //----------------------------------------------------------------------
        public bool CriarConta(Funcionario funcionario)
        {
            var repository = new FuncionarioRepository();

            try
            {
                repository.AbrirConexao();

                if (!repository.LoginExistente(funcionario.Login))
                {
                    funcionario.Senha = CriptografiaUtil.GetMD5(funcionario.Senha);

                    repository.Inserir(funcionario);
                }
                else
                {
                    MsgErro = $"Login {funcionario.Login} já encontra-se cadastrado, tente outro.";
                }
            }
            catch (Exception e)
            {
                //HAFAZER: LOG4NET
                Debug.WriteLine(e.Message);

                MsgErro = "Erro ao criar conta de Funcionário.";
                return(false);
            }
            finally
            {
                repository.FecharConexao();
            }

            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Busca usuário
        /// </summary>
        /// <param name="filtro">ValidaUsuarioFiltro</param>
        /// <returns>UsuarioEntidade</returns>
        public UsuarioEntidade BuscaUsuario(ValidaUsuarioFiltro filtro)
        {
            using (var sqlConnection = this.InstanciaConexao())
            {
                // Parametro
                var senhaOrigem     = CriptografiaUtil.Descriptografa(filtro.usuarioSenha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r");
                var senhaEncryp     = CriptografiaUtil.CriptografiaHash(senhaOrigem);
                var senhaEncrypByte = Encoding.UTF8.GetBytes(senhaEncryp);

                // Query
                string query = @"select * from tblUsuarios where
                                    vcEmail = @usuemaillogin and 
                                    vbPassword = @usupass";
                // and
                //bitAtivo = 1";

                //if (filtro.usuarioTipo != null)
                //    query += " and idTipoUsuario = @usutp";

                // Execução
                return(sqlConnection.QueryFirstOrDefault <UsuarioEntidade>(query, new
                {
                    usuemaillogin = filtro.usuarioEmail,
                    usupass = senhaEncrypByte
                              //usutp = filtro.usuarioTipo != null ? ((int)filtro.usuarioTipo) : 1
                }));
            }
        }
Ejemplo n.º 4
0
        public override void Alterar(Usuario entidade)
        {
            var entidadeBanco = this.SelecionarPorId(new Usuario {
                Id = entidade.Id
            });

            if (entidadeBanco != null)
            {
                entidadeBanco.Nome     = entidade.Nome;
                entidadeBanco.CPF      = entidade.CPF;
                entidadeBanco.Email    = entidade.Email;
                entidadeBanco.Login    = entidade.Login;
                entidadeBanco.PerfilId = entidade.PerfilId;

                if (entidade.PerfilId == 2)
                {
                    entidadeBanco.CancelaId = entidade.CancelaId;
                }
                else
                {
                    entidadeBanco.CancelaId = null;
                }
                if (!string.IsNullOrWhiteSpace(entidade.Senha))
                {
                    entidadeBanco.Senha = CriptografiaUtil.Criptografar(entidade.Senha);
                }

                base.Alterar(entidadeBanco);
            }
            else
            {
                throw new EntidadeNaoExistenteException("Não existe nenhum registro cadastrado na base de dados.");
            }
        }
Ejemplo n.º 5
0
        public override void Inserir(Usuario entidade)
        {
            entidade.Status = Status.Ativo;
            entidade.Senha  = CriptografiaUtil.Criptografar(entidade.Senha);

            base.Inserir(entidade);
        }
Ejemplo n.º 6
0
        public byte[] RetornaSenhaEncriptada(string senha)
        {
            var senhaOrigem = CriptografiaUtil.Descriptografa(senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r");
            var senhaEncryp = CriptografiaUtil.CriptografiaHash(senhaOrigem);

            return(Encoding.UTF8.GetBytes(senhaEncryp));
        }
Ejemplo n.º 7
0
        public ActionResult Registrar(RegistrarUsuarioModel model)
        {
            // Cadastra Cliente Externo
            if (ModelState.IsValid)
            {
                try
                {
                    ViewBag.ErroLogin = "";
                    // Verifica Senha
                    if (model.Senha != model.SenhaConfirm)
                    {
                        ViewBag.ErroLogin  = "******";
                        model.Senha        = "";
                        model.SenhaConfirm = "";
                        return(View(model));
                    }

                    // Incluir Cliente
                    clienteServico.IncluirClienteAvulso(new ClienteAvulsoDTO()
                    {
                        Nome                  = model.Nome,
                        Email                 = model.Email,
                        DataNascimento        = model.DataNascimento ?? default(DateTime),
                        Celular               = model.Celular,
                        Comercial             = model.Comercial,
                        CPF                   = model.CPF,
                        CEP                   = model.CEP,
                        Rua                   = model.Rua,
                        Bairro                = model.Bairro,
                        Cidade                = model.Cidade,
                        Estado                = model.Estado.ToString(),
                        NomeCartaoCredito     = model.NomeCartaoCredito,
                        Numero                = model.Numero ?? 0,
                        NumeroCartaoCredito   = model.NumeroCartaoCredito.Replace(".", ""),
                        Pais                  = model.Pais,
                        Senha                 = CriptografiaUtil.Criptografa(model.Senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r"),
                        Sexo                  = model.Sexo.ToString(),
                        ValidadeCartaoCredito = model.ValidadeCartaoCredito
                    });

                    ViewBag.ErroLogin        = string.Empty;
                    TempData["SucessoLogin"] = $"Bem vindo, {model.Nome}, cadastro realizado com sucesso";
                }
                catch (Exception e)
                {
                    ViewBag.ErroLogin = e.Message;
                    return(View(model));
                }
                return(RedirectToAction("Login", "Home"));
            }
            else
            {
                return(View());
            }
        }
Ejemplo n.º 8
0
        public async Task <bool> BuscaUsuario()
        {
            try
            {
                // Carregando
                Loading    = true;
                OffLoading = false;

                // Database
                using (var db = new Database())
                {
                    if (await db.ExisteTabela <UsuarioLogado>() == false)
                    {
                        await db.CriaTabela <UsuarioLogado>();

                        return(false);
                    }
                    else
                    {
                        var item = await db.BuscaItems <UsuarioLogado>();

                        if (item == null || !item.Any())
                        {
                            return(false);
                        }

                        var usuario = item.LastOrDefault();

                        if (usuario != null)
                        {
                            Login = new LoginModel()
                            {
                                Username = usuario.usuario,
                                Password = CriptografiaUtil.Descriptografa(usuario.senha, protSenha)
                            };

                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
            }
            finally
            {
                // Finaliza loading
                Loading    = false;
                OffLoading = true;
            }
        }
Ejemplo n.º 9
0
        public TokenModel Autenticar(string usuario, string senha)
        {
            // HttpClient
            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(ServicoRotas.Base)
            })
            {
                // Parametros
                var parametros = new KeyValuePair <string, string>[]
                {
                    new KeyValuePair <string, string>("username", usuario),
                    new KeyValuePair <string, string>("password", CriptografiaUtil.Criptografa(senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r")),
                    new KeyValuePair <string, string>("grant_type", "password"),
                    new KeyValuePair <string, string>("Modulo", "Mobile"),
                    new KeyValuePair <string, string>("area", "2"),
                };

                // Requisiçao
                var requisicao = new HttpRequestMessage(HttpMethod.Post, ServicoRotas.Base + ServicoRotas.Autenticacao.PostAutenticar)
                {
                    Content = new FormUrlEncodedContent(parametros)
                };

                // Resposta
                var resposta = httpClient.SendAsync(requisicao).Result;

                // Content
                var conteudo = resposta.Content;

                // Validação
                switch (resposta.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    // Deserialize usuario autentidado
                    var autenticado = JsonConvert.DeserializeObject <TokenModel>(conteudo.ReadAsStringAsync().Result);
                    // Sessao
                    GlobalVariablesManager.SetApplicationCurrentProperty(GlobalVariablesManager.VariaveisGlobais.Token, autenticado.access_token);
                    // Return model
                    return(autenticado);

                case System.Net.HttpStatusCode.Unauthorized:
                    throw new ErrorException("Usuário desativado ou sem permissão de acesso.");

                default:
                    throw new ErrorException(DeserializaResponse(resposta, Mensagem.Erro.ErroPadrao));
                }
            }
        }
Ejemplo n.º 10
0
        private async Task GravaUsuario()
        {
            // Database
            using (var db = new Database())
            {
                await db.LimpaTabela("BHJetMotorista");

                await db.InsereItem(new UsuarioLogado()
                {
                    IDMotorista = usuarioAutenticado.IDProfissional,
                    usuario     = Login.Username,
                    senha       = CriptografiaUtil.Criptografa(Login.Password, protSenha)
                });
            }
        }
Ejemplo n.º 11
0
        public RetornoModel <UsuarioModel> Salvar(UsuarioModel model)
        {
            RetornoModel <UsuarioModel> result = new RetornoModel <UsuarioModel> {
                Mensagem = "OK"
            };

            try
            {
                var user = _ado.CarregarPorCPF(model.CPF);
                if (user != null && user.ID != model.ID)
                {
                    result.Mensagem = "Já existe um usuário com este CPF. Não é possível concluir a operação";
                    return(result);
                }

                model.CPF = model.CPF.OnlyNumbers();
                if (!model.CPF.IsValidCPFCNPJ())
                {
                    result.Mensagem = "Documento informado não é válido";
                    return(result);
                }

                if (model.ID > 0)
                {
                    result.Sucesso = _ado.Atualizar(model.MapTo <Usuario>());
                    result.Retorno = model;

                    if (!result.Sucesso)
                    {
                        result.Mensagem = "Registro não localizado para modificação. Verifique se o ID informado está correto";
                    }
                }
                else
                {
                    model.Senha    = CriptografiaUtil.CriptografarSenha(model.Senha);
                    result.Retorno = _ado.Inserir(model.MapTo <Usuario>()).MapTo <UsuarioModel>();
                    result.Sucesso = true;
                }
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }

            return(result);
        }
Ejemplo n.º 12
0
        public TokenModel Autenticar(AutenticacaoFiltro filtro)
        {
            // HttpClient
            using (var httpClient = new HttpClient()
            {
                BaseAddress = new Uri(ServicoRotas.Base)
            })
            {
                // Parametros
                var parametros = new KeyValuePair <string, string>[]
                {
                    new KeyValuePair <string, string>("username", filtro.usuario),
                    new KeyValuePair <string, string>("password", CriptografiaUtil.Criptografa(filtro.senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r")),
                    new KeyValuePair <string, string>("grant_type", "password"),
                    new KeyValuePair <string, string>("Modulo", "Web")
                    //new KeyValuePair<string, string>("area", ((int)filtro.area).ToString()),
                };

                // Requisiçao
                var requisicao = new HttpRequestMessage(HttpMethod.Post, ServicoRotas.Base + ServicoRotas.Autenticacao.PostAutenticar)
                {
                    Content = new FormUrlEncodedContent(parametros)
                };

                // Resposta
                var resposta = httpClient.SendAsync(requisicao).Result;

                // Content
                var conteudo = resposta.Content;

                // Validação
                switch (resposta.StatusCode)
                {
                case System.Net.HttpStatusCode.OK:
                    return(JsonConvert.DeserializeObject <TokenModel>(conteudo.ReadAsStringAsync().Result));

                case System.Net.HttpStatusCode.Unauthorized:
                    throw new UnauthorizedAccessException();

                default:
                    var teste = DeserializaResponse(resposta, Mensagem.Erro.ErroPadrao);
                    throw new UnauthorizedAccessException(teste);
                }
            }
        }
Ejemplo n.º 13
0
        public RetornoModel MudarSenha(MudarSenhaModel model, int usuarioAtual)
        {
            var result = new RetornoModel();

            try
            {
                var usuario = _ado.Carregar(usuarioAtual);
                if (usuario == null)
                {
                    result.Mensagem = "Usuario não está autenticado. Por favor efetue novamente o login antes de continuar";
                    return(result);
                }
                else
                {
                    if (model.UsuarioDiferente && usuario.Perfil != PerfilUsuario.Administrador)
                    {
                        result.Mensagem = "Você não possui permissão para realizar essa operação";
                        return(result);
                    }

                    if (!model.UsuarioDiferente)
                    {
                        if (!CriptografiaUtil.VerificarSenha(usuario.Senha, model.SenhaAtual))
                        {
                            result.Mensagem = "Senha atual não confere!";
                            return(result);
                        }

                        model.IdUsuario = usuarioAtual;
                    }

                    result.Sucesso  = _ado.MudarSenha(CriptografiaUtil.CriptografarSenha(model.NovaSenha), model.IdUsuario);
                    result.Mensagem = "Senha alterada com sucesso!";
                }

                return(result);
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }
        }
Ejemplo n.º 14
0
        public bool ValidarLogin(string login, string senha)
        {
            var retorno       = false;
            var entidadeBanco = this.RepositorioBase.SelecionarPor(x => x.Login.Equals(login)).FirstOrDefault();

            if (entidadeBanco != null)
            {
                if (CriptografiaUtil.Comparar(senha, entidadeBanco.Senha))
                {
                    entidadeBanco.DataHoraLogin = DateTime.Now;
                    base.Alterar(entidadeBanco);
                    retorno = true;
                }
            }
            else
            {
                throw new EntidadeNaoExistenteException("O registro solicitado não foi encontrado ou não existe.");
            }

            return(retorno);
        }
Ejemplo n.º 15
0
        public string ResetaSenhaUsuario(long idusu)
        {
            using (var sqlConnection = this.InstanciaConexao())
            {
                // Gera senha
                var    senha   = GeraSenhaAleatoria();
                byte[] senhabt = RetornaSenhaEncriptada(CriptografiaUtil.Criptografa(senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r"));

                // Query
                string query = @"UPDATE tblUsuarios set vbPassword = @_senha where idUsuario = @_id";

                // Execução
                sqlConnection.ExecuteScalar(query, new
                {
                    _id    = idusu,
                    _senha = senhabt
                });

                // return
                return(senha);
            }
        }
Ejemplo n.º 16
0
        public ActionResult Novo(NovoMotoristaModel model)
        {
            try
            {
                // Validacoes
                //if (model.Comissao != null && model.Comissao.Any())
                //{
                //    model.Comissao.All(x =>
                //    {
                //        if (!DateTime.TryParse(x.VigenciaInicio, out DateTime ini) || !DateTime.TryParse(x.VigenciaFim, out DateTime fim))
                //            throw new Exception($"Preencha datá válida para vigência da comissão.");
                //        else if (DateTime.Parse(x.VigenciaFim) <= DateTime.Now.Date || DateTime.Parse(x.VigenciaFim) < DateTime.Parse(x.VigenciaInicio))
                //            throw new Exception($"A comissão {x.ID} está com a data de vigência final menor que a data atual ou que a vigência inicial, favor atualizar.");
                //        else if (x.ValorComissao == null || x.VigenciaInicio == null || x.VigenciaFim == null)
                //            throw new Exception($"Preencha ao menos uma comissão para o profissional.");
                //        return true;
                //    });
                //}
                //else
                //{
                //    model.Comissao = new NovoMotoristaComissaoModel[] { };
                //    throw new Exception($"Preencha ao menos uma comissão para o profissional.");
                //}
                if (model.VeiculoSelecionado == null || !model.VeiculoSelecionado.Any() || (model.VeiculoSelecionado.Count() == 1 && model.VeiculoSelecionado.FirstOrDefault() == 0))
                {
                    throw new Exception($"Preencha ao menos um tipo de veiculo que o motorista possui ou irá utilizar.");
                }

                // Modelo entidade
                var entidade = new ProfissionalCompletoModel()
                {
                    ID                                    = model.ID,
                    NomeCompleto                          = model.NomeCompleto,
                    Email                                 = model.Email,
                    CelularWpp                            = model.CelularWhatsapp,
                    CPF                                   = model.CpfCnpj,
                    TelefoneResidencial                   = model.TelefoneResidencial,
                    TipoVeiculos                          = model.VeiculoSelecionado.ToArray(),
                    TelefoneCelular                       = model.TelefoneCelular,
                    CNH                                   = model.CNH,
                    ContratoCLT                           = model.TipoRegimeContratacao == RegimeContratacao.CLT ? true : false,
                    Observacao                            = model.Observacao,
                    TipoCNH                               = model.TipoCarteiraMotorista,
                    TipoRegime                            = model.TipoRegimeContratacao,
                    Cep                                   = model.Cep,
                    Rua                                   = model.Rua,
                    Bairro                                = model.Bairro,
                    Cidade                                = model.Cidade,
                    Complemento                           = model.Complemento,
                    EnderecoPrincipal                     = model.EnderecoPrincipal,
                    PontoReferencia                       = model.PontoReferencia,
                    RuaNumero                             = model.RuaNumero,
                    UF                                    = model.UF,
                    DocumentoRG                           = model.DocumentoRG,
                    Senha                                 = model.Senha != null?CriptografiaUtil.Criptografa(model.Senha, "ch4v3S3m2nt3BHJ0e1tA9u4t4hu1s33r") : null,
                                                Status    = model.Situacao,
                                                Comissoes = new ProfissionalComissaoModel[]
                    {
                        new ProfissionalComissaoModel()
                        {
                            ID                    = 1,
                            Observacao            = "",
                            decPercentualComissao = model.ValorComissao.ToDecimalCurrency(),
                            dtDataFimVigencia     = DateTime.Now,
                            dtDataInicioVigencia  = DateTime.Now.AddYears(3000)
                        }
                    }
                };

                // Alteração
                if (model.EdicaoCadastro)
                {
                    profissionalServico.AtualizaDadosProfissional(entidade); // Atualiza dados do profissional
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(model.Senha))
                    {
                        throw new Exception($"Na inclusão de um motorista, o campo SENHA é de preenchimento obrigatório.");
                    }
                    profissionalServico.IncluirProfissional(entidade); // Atualiza dados do profissional
                }

                this.MensagemSucesso("Profissional atualizado com sucesso.");

                // Return
                return(View(new NovoMotoristaModel()
                {
                    EdicaoCadastro = false,
                    ID = 0,
                    Bairro = "",
                    Senha = "",
                    Email = "",
                    Comissao = new NovoMotoristaComissaoModel[]
                    {
                        MontaComissaoPadrao()
                    }
                }));
            }
            catch (Exception e)
            {
                this.TrataErro(e);
                return(View(model));
            }
        }