Exemplo n.º 1
0
        public ActionResult Login(string cpf, string senha)
        {
            cpf = Shared.RetirarCaracteres(cpf);

            Usuario user = _db.Int_RH_Usuarios.Where(a => a.CPF.Equals(cpf)).FirstOrDefault();

            if (user != null)
            {
                ViewBag.User = user;
               
                if (user.Ativo == 1)
                {
                    senha = senha.Replace(",", "").Replace(".", "").Replace("'", "").Replace(".", "").Trim();

                    bool senha_comparacao = Criptografia
                        .VerifyMd5Hash(senha.Replace(",", "").Replace(".", "").Replace("'", "").Trim(), user.Senha);

                    if (senha_comparacao)
                    {
                        Log log = new Log();

                        try
                        {
                            int loja = _db.Int_RH_Usuarios.Where(a => a.Id == user.Id).Select(s => s.Loja.Id).FirstOrDefault();
                            user.Loja = _db.Int_RH_Lojas.Find(loja);
                            
                            HttpContext.Session.SetInt32("ID", user.Id);
                            HttpContext.Session.SetInt32("Nivel", user.Nivel); //1: Administrador, 2: Usuario Comum, 3: Suporte 
                            HttpContext.Session.SetInt32("Loja", user.Loja.Id);
                            HttpContext.Session.SetString("Nome", user.Nome);
                            HttpContext.Session.SetString("CPF", user.CPF);
                            HttpContext.Session.SetString("UltimoAcesso", Globalization.DataHoraExtensoBR(user.UltimoAcesso));

                            user.UltimoAcesso = Globalization.HoraAtualBR();

                            _db.SaveChanges();

                            log.LogIn(user.Id);
                            
                            return RedirectToAction("Inicio");

                        }
                        catch (Exception exp)
                        {
                            string mensagem = exp.Message;

                            TempData["MensagemErroIndex"] = "Ocorreu um erro ao tentar efetuar o login";

                            log.LogIn_Erro(user.Id, exp);

                            return RedirectToAction("Index");
                        }
                        finally
                        {
                            _db.Int_RH_Logs.Add(log);
                            _db.SaveChanges();
                        }
                    }
                    else
                    {
                        TempData["MensagemErroIndex"] = "Senha Incorreta!";
                        return RedirectToAction("Index");
                    }
                }
                else
                {
                    TempData["MensagemErroIndex"] = "Usuário não está ativo";
                    return RedirectToAction("Index");
                }
            }
            else
            {
                TempData["MensagemErroIndex"] = "Usuário não encontrado!";
                return RedirectToAction("Index");
            }
        }