public ActionResult CreateUsuario(T_Usuario_Reg usu)
        {
            EmpleadoJornadaRepository empleadoJornadaRepository = new EmpleadoJornadaRepository();

            using (StoreContext db = new StoreContext())
            {
                try
                {
                    T_Usuario usuario = new T_Usuario();
                    usuario.ID_Perfil  = usu.ID_Perfil;
                    usuario.ID_Persona = usu.ID_Persona;
                    usuario.Usuario    = usu.Correo;
                    usuario.Estado     = usu.Estado;
                    usuario.Clave      = usu.Clave;

                    if (ModelState.IsValid)
                    {
                        db.t_Usuarios.Add(usuario);
                        db.SaveChanges();
                        empleadoJornadaRepository.iNSERTARJornadaEmpleado(1, usuario.ID_Usuario, usu.ID_TipoJornada);
                        return(RedirectToAction("Index"));
                    }
                    ViewBag.ID_Perfil      = new SelectList(db.t_Perfils.ToList(), "ID_Perfil", "Descripcion", usu.ID_Perfil);
                    ViewBag.ID_TipoJornada = new SelectList(db.t_TipoJornadas.ToList(), "ID_TipoJornada", "Descripcion", usu.ID_TipoJornada);

                    return(View(usu));
                }
                catch (Exception)
                {
                    return(View(usu));
                }
            }
        }
Example #2
0
        public ActionResult Edit(T_Usuario usuario)
        {
            #region Validações
            //Valida E-mail
            if (db.T_Usuario.Count(x => x.ID_USUARIO != usuario.ID_USUARIO && x.EMAIL == usuario.EMAIL) > 0)
            {
                ModelState.AddModelError("EMAIL", "E-mail informado já existe");
            }

            //Valida Nome
            if (db.T_Usuario.Count(x => x.ID_USUARIO != usuario.ID_USUARIO && x.NOME == usuario.NOME) > 0)
            {
                ModelState.AddModelError("NOME", "Nome informado já existe");
            }
            #endregion Validações
            if (ModelState.IsValid)
            {
                usuario.SENHA           = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.SENHA, "SHA1");
                db.Entry(usuario).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.id_perfil = new SelectList(db.T_Perfil, "PER_ID", "PER_NOME", usuario.ID_PERFIL);
            return(View(usuario));
        }
Example #3
0
        public ActionResult Perfil()
        {
            var user = new T_Usuario();
            int id   = Convert.ToInt32(HttpContext.User.Identity.Name);

            user = db.T_Usuario.Find(id);
            return(View(user));
        }
Example #4
0
        //
        // GET: /Usuario/Delete/5

        public ActionResult Delete(int id = 0)
        {
            T_Usuario usuario = db.T_Usuario.Find(id);

            if (usuario == null)
            {
                return(HttpNotFound());
            }
            return(View(usuario));
        }
Example #5
0
 //Metódo Validar Usuário
 public bool AutenticarUsuario(T_Usuario usuario)
 {
     if (db.T_Usuario.Count(x => x.EMAIL == usuario.EMAIL && x.SENHA == usuario.SENHA) > 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #6
0
        public ActionResult Details(int id = 0, string name = "")
        {
            T_Usuario usuario = db.T_Usuario.Find(id);

            if (name != "")
            {
                usuario = db.T_Usuario.First(x => x.EMAIL == name);
            }
            if (usuario == null)
            {
                return(HttpNotFound());
            }
            return(View(usuario));
        }
Example #7
0
        public ActionResult Senha(int id = 0, string name = "")
        {
            T_Usuario usuario = db.T_Usuario.Find(id);

            if (name != "")
            {
                usuario = db.T_Usuario.First(x => x.EMAIL == name);
            }
            if (usuario == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id_perfil = new SelectList(db.T_Perfil, "PER_ID", "PER_NOME", usuario.ID_PERFIL);
            return(View(usuario));
        }
Example #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            T_Usuario usuario = db.T_Usuario.Find(id);

            if (usuario.T_USER_GRUPO.Count > 0)
            {
                ModelState.AddModelError("EMAIL", "Desculpe, usuário não pode ser excluído pois possui grupos associdados.");
            }
            if (ModelState.IsValid)
            {
                db.T_Usuario.Remove(usuario);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(usuario));
        }
Example #9
0
        //
        // GET: /Usuario/Edit/5

        public ActionResult Edit(int id = 0, string name = "")
        {
            T_Usuario usuario = db.T_Usuario.Find(id);

            if (name != "")
            {
                usuario = db.T_Usuario.First(x => x.EMAIL == name);
            }
            if (usuario == null)
            {
                //usuario.senha = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.senha, "SHA1");
                return(HttpNotFound());
            }
            ViewBag.id_perfil = new SelectList(db.T_Perfil, "PER_ID", "PER_NOME", usuario.ID_PERFIL);
            return(View(usuario));
        }
Example #10
0
 public ActionResult Perfil(T_Usuario usuario)
 {
     ModelState.Remove("SENHA");
     if (ModelState.IsValid)
     {
         var user = db.T_Usuario.Find(usuario.ID_USUARIO);
         user.NOME = usuario.NOME;
         if (usuario.SENHA != "" && usuario.SENHA != null)
         {
             user.SENHA = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.SENHA, "SHA1");
         }
         db.Entry(user).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index", "Home"));
     }
     return(View(usuario));
 }
Example #11
0
 public ActionResult Senha(T_Usuario usuario)
 {
     if (usuario.SENHA == "" || usuario.SENHA == null)
     {
         ModelState.AddModelError("SENHA", "Obrigatório informar a senha");
     }
     if (ModelState.IsValid)
     {
         usuario.T_Perfil        = null;
         usuario.SENHA           = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.SENHA, "SHA1");
         db.Entry(usuario).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.id_perfil = new SelectList(db.T_Perfil, "PER_ID", "PER_NOME", usuario.ID_PERFIL);
     return(View(usuario));
 }
Example #12
0
        public ActionResult Create(T_Usuario usuario)
        {
            #region Validações
            //Valida E-mail
            if (db.T_Usuario.Count(x => x.EMAIL == usuario.EMAIL) > 0)
            {
                ModelState.AddModelError("EMAIL", "E-mail informado já existe");
            }

            //Valida Nome
            if (db.T_Usuario.Count(x => x.NOME == usuario.NOME) > 0)
            {
                ModelState.AddModelError("NOME", "Nome informado já existe");
            }

            if (usuario.NOME == "" || usuario.NOME == null)
            {
                ModelState.AddModelError("NOME", "Obrigatório informar o nome");
            }

            if (usuario.EMAIL == "" || usuario.EMAIL == null)
            {
                ModelState.AddModelError("EMAIL", "Obrigatório informar o login");
            }

            if (usuario.SENHA == "" || usuario.SENHA == null)
            {
                ModelState.AddModelError("SENHA", "Obrigatório informar a senha");
            }
            #endregion Validações

            if (ModelState.IsValid)
            {
                usuario.SENHA = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.SENHA, "SHA1");
                db.T_Usuario.Add(usuario);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.id_perfil = new SelectList(db.T_Perfil, "PER_ID", "PER_NOME", usuario.ID_PERFIL);
            return(View(usuario));
        }
Example #13
0
        public ActionResult Login(T_Usuario usuario, string ReturnUrl)
        {
            var valido = false;

            //valido = Autentica("10.0.10.2", usuario.EMAIL, usuario.SENHA);
            if (valido == false)
            {
                if (usuario.EMAIL == "" || usuario.SENHA == "" || usuario.EMAIL == null || usuario.SENHA == null)
                {
                    ViewBag.alerta = "Usuário ou Senha não informados!";
                }
                else
                {
                    usuario.SENHA = FormsAuthentication.HashPasswordForStoringInConfigFile(usuario.SENHA, "SHA1");
                    if (usuario.EMAIL == null || usuario.SENHA == null || AutenticarUsuario(usuario) == false)
                    {
                        ViewBag.alerta = "Usuário ou Senha Inválidos!";
                    }
                    else
                    {
                        var user = db.T_Usuario.First(x => x.EMAIL == usuario.EMAIL && x.SENHA == usuario.SENHA);

                        CustomPrincipalSerializeModel serializeModel = new CustomPrincipalSerializeModel()
                        {
                            Id    = user.ID_USUARIO,
                            Name  = user.NOME,
                            Roles = new[] { user.T_Perfil.PER_NOME }
                        };
                        string userData       = new JavaScriptSerializer().Serialize(serializeModel);
                        var    authTicket     = new FormsAuthenticationTicket(1, user.ID_USUARIO.ToString(), DateTime.Now, DateTime.Now.AddMinutes(1000), true, userData);
                        string cookieContents = FormsAuthentication.Encrypt(authTicket);
                        var    cookie         = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
                        {
                            Expires = authTicket.Expiration,
                            Path    = FormsAuthentication.FormsCookiePath
                        };
                        System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
                        Response.Cookies.Add(cookie);

                        if (Url.IsLocalUrl(ReturnUrl) && ReturnUrl.Length > 1 && ReturnUrl.StartsWith("/") && !ReturnUrl.StartsWith("//") && !ReturnUrl.StartsWith("/\\"))
                        {
                            return(Redirect(ReturnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                }
            }
            //Acesso pelo AD
            else
            {
                if (db.T_Usuario.Count(x => x.EMAIL == usuario.EMAIL) <= 0)
                {
                    ViewBag.alerta = "Usuário encontrado no Activity Directory, porém o mesmo não possui perfil associado na ferramenta de indicadores";
                    return(View(usuario));
                }

                var user = db.T_Usuario.First(x => x.EMAIL == usuario.EMAIL);
                var role = user.T_Perfil.PER_NOME;

                var    authTicket     = new FormsAuthenticationTicket(1, user.EMAIL, DateTime.Now, DateTime.Now.AddMinutes(1000), true, role);
                string cookieContents = FormsAuthentication.Encrypt(authTicket);
                var    cookie         = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
                {
                    Expires = authTicket.Expiration,
                    Path    = FormsAuthentication.FormsCookiePath
                };
                System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
                Response.Cookies.Add(cookie);

                if (Url.IsLocalUrl(ReturnUrl) && ReturnUrl.Length > 1 && ReturnUrl.StartsWith("/") && !ReturnUrl.StartsWith("//") && !ReturnUrl.StartsWith("/\\"))
                {
                    return(Redirect(ReturnUrl));
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            return(View(usuario));
        }
Example #14
0
        /// <summary>
        /// Autentica acesso pelo AD
        /// </summary>
        /// <param name="IpServer">Endereço de ip do servidor</param>
        /// <param name="User">Usuário de acesso</param>
        /// <param name="Senha">Senha de acesso</param>
        /// <returns>Retorna true se autenticado e false se não foi autenticado</returns>
        public bool Autentica(string IpServer, string User, string Senha)
        {
            bool valido = false;

            try
            {
                DirectoryEntry objAD        = new DirectoryEntry("LDAP://" + IpServer, User, Senha);
                var            grupos       = new List <string>();
                var            grupoSgi     = new List <T_Grupo>();
                var            perfisAcesso = new List <T_Perfil>();
                if (objAD.Name != "")
                {
                    valido = true;
                }
                //Valida se autentiou usuário no AD
                if (valido)
                {
                    grupos       = BuscaListadeGrupo(objAD);
                    grupoSgi     = db.T_Grupo.Where(x => grupos.Any(j => j.ToUpper() == x.NOME.ToUpper())).ToList();
                    perfisAcesso = db.T_Perfil.Where(x => grupos.Any(j => j.ToUpper().Replace("PSGI_", "") == x.PER_NOME.ToUpper())).ToList();

                    //Valida se usuário esta cadastrado no SGI
                    if (db.T_Usuario.Count(x => x.EMAIL == User) > 0)
                    {
                        var usuario = db.T_Usuario.First(x => x.EMAIL == User);
                        if (grupos.Count <= 0)
                        {
                            usuario.ATIVO = (int)Enums.Ativo.Bloqueada;
                        }
                        else
                        {
                            var gruposUsuario = db.T_USER_GRUPO.Where(x => x.ID_USUARIO == usuario.ID_USUARIO).ToList();
                            db.T_USER_GRUPO.RemoveRange(gruposUsuario);
                            foreach (var item in grupoSgi)
                            {
                                if (usuario.T_USER_GRUPO.Count(x => x.GRU_ID == item.GRU_ID) <= 0)
                                {
                                    usuario.T_USER_GRUPO.Add(new T_USER_GRUPO()
                                    {
                                        GRU_ID = item.GRU_ID, ID_USUARIO = usuario.ID_USUARIO
                                    });
                                }
                            }
                        }
                        if (perfisAcesso.Count > 0)
                        {
                            usuario.ID_PERFIL = perfisAcesso.FirstOrDefault().PER_ID;
                        }
                        db.Entry(usuario).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();        //Salva usuário
                    }
                    else if (grupoSgi.Count > 0) //Cadastra usuário
                    {
                        var usuario = new T_Usuario();
                        if (perfisAcesso.Count > 0)
                        {
                            usuario.ID_PERFIL = perfisAcesso.FirstOrDefault().PER_ID;
                        }
                        else
                        {
                            usuario.ID_PERFIL = db.T_Perfil.FirstOrDefault(x => x.PER_NOME == "Padrão").PER_ID;
                        }
                        usuario.EMAIL = User;
                        usuario.NOME  = User;
                        usuario.SENHA = FormsAuthentication.HashPasswordForStoringInConfigFile(Senha, "SHA1");
                        foreach (var item in grupoSgi)
                        {
                            if (usuario.T_USER_GRUPO.Count(x => x.GRU_ID == item.GRU_ID) <= 0)
                            {
                                usuario.T_USER_GRUPO.Add(new T_USER_GRUPO()
                                {
                                    GRU_ID = item.GRU_ID, ID_USUARIO = usuario.ID_USUARIO
                                });
                            }
                        }
                        db.T_Usuario.Add(usuario);
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                return(false);

                throw new Exception(ex.Message);
            }

            return(valido);
        }
Example #15
0
 public ActionResult Forgot(T_Usuario usuario)
 {
     return(RedirectToAction("Index", "Home"));
 }
Example #16
0
 public void RegistrarUsuario(T_Usuario _usuario)
 {
     IsBusy = true;
 }