コード例 #1
0
 private void comboBoxRol_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBoxRol.SelectedIndex != -1)
     {
         rols rol = (rols)comboBoxRol.SelectedItem;
         if (comboBoxRol.SelectedIndex == 0)
         {
             comboBoxComunidades.SelectedIndex  = -1;
             bindingSourceComunitats.DataSource = null;
             dataGridViewComunidades.DataSource = null;
             _comunitats.Clear();
         }
         else
         {
             String            missatge   = "";
             List <comunitats> comunitats = ComunitatsOrm.Select(ref missatge);
             if (missatge.Equals(""))
             {
                 bindingSourceComunitats.DataSource = comunitats;
                 comboBoxComunidades.SelectedIndex  = -1;
             }
             else
             {
                 MessageBox.Show(missatge, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
コード例 #2
0
        // GET: Rols/Create
        public ActionResult Create(int?menu)
        {
            ParametrosVista();
            var crearRol = new rols {
                rol_estado = true, rol_razoninactivo = "No aplica"
            };
            var jerarquia = context.clasificacion_rol.Select(d => new { id = d.id_clasificacion, nombre = d.nombre_clasificacion }).ToList();

            ViewBag.clasificacion_rol = new SelectList(jerarquia, "id", "nombre");
            BuscarFavoritos(menu);
            return(View(crearRol));
        }
コード例 #3
0
        public ActionResult Create(rols rol, int?menu)
        {
            var jerarquia = context.clasificacion_rol.Select(d => new { id = d.id_clasificacion, nombre = d.nombre_clasificacion }).ToList();

            if (ModelState.IsValid)
            {
                ViewBag.clasificacion_rol = new SelectList(jerarquia, "id", "nombre", rol.clasificacion_rol);
                //consulta si el registro esta en BD
                var nom = (from a in context.rols
                           where a.rol_nombre == rol.rol_nombre
                           select a.rol_nombre).Count();

                if (nom == 0)
                {
                    rol.rolfec_creacion    = DateTime.Now;
                    rol.roluserid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                    context.rols.Add(rol);
                    var guardar = context.SaveChanges() > 0;
                    if (guardar)
                    {
                        ParametrosVista();
                        TempData["mensaje"] = "El registro del nuevo rol fue exitoso!";
                        BuscarFavoritos(menu);
                        return(View(rol));
                    }

                    TempData["mensaje_error"] = "Error de conexion!";
                }
                else
                {
                    TempData["mensaje_error"] = "El registro que ingreso ya se encuentra, por favor valide!";
                }
            }

            ParametrosVista();
            ViewBag.clasificacion_rol = new SelectList(jerarquia, "id", "nombre", rol.clasificacion_rol);

            BuscarFavoritos(menu);
            return(View(rol));
        }
コード例 #4
0
        public ActionResult login(LoginModel objUsu)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                    md5.ComputeHash(Encoding.ASCII.GetBytes(objUsu.user_password));
                    byte[]        result = md5.Hash;
                    StringBuilder str    = new StringBuilder();
                    for (int i = 0; i < result.Length; i++)
                    {
                        str.Append(result[i].ToString("x2"));
                    }

                    string pass = str.ToString();
                    users  obj  = context.users
                                  .Where(a => a.user_usuario.Equals(objUsu.user_usuario) && a.user_password.Equals(pass))
                                  .FirstOrDefault();
                    if (obj != null)
                    {
                        Session["user_usuario"]   = obj.user_nombre;
                        Session["user_usuarioid"] = obj.user_id.ToString();
                        Session["user_rolid"]     = obj.rol_id.ToString();

                        if (Session["user_usuario"] == null && obj == null)
                        {
                            CerrarSesion();
                            Session.Abandon();
                        }
                        else if (Session["user_usuario"] != null && obj != null && obj != null && obj.user_estado)
                        {
                            //borro los intentos fallidos de acceso del usuario del día de hoy
                            DateTime diahoy = DateTime.Now.Date;

                            System.Collections.Generic.List <intentos_fallidos_login> cuantosintentos = context.intentos_fallidos_login
                                                                                                        .Where(d => d.id_usuario == obj.user_id && d.fecha >= diahoy).ToList();
                            if (cuantosintentos.Count() > 0)
                            {
                                foreach (intentos_fallidos_login item in cuantosintentos)
                                {
                                    context.Entry(item).State = EntityState.Deleted;
                                }

                                context.SaveChanges();
                            }

                            //pregunto si va a cambiarcontraseña
                            if (obj.cambio_contrasena)
                            {
                                TempData["claveExpiro"] = "Debe cambiar la contraseña para poder ingresar al sistema";
                                return(View());
                            }

                            //Cuando el usuario escribe sus credenciales correctamente
                            // Primero buscamos la ultima conexion que ha tenido antes de agregar la aque abrira en este momento
                            int            idUsuarioActual = Convert.ToInt32(Session["user_usuarioid"]);
                            icb_sessionlog buscaAcceso     = context.icb_sessionlog.Where(x => x.id_usuario == idUsuarioActual)
                                                             .OrderByDescending(x => x.fecha_ingreso).FirstOrDefault();
                            if (buscaAcceso != null)
                            {
                                Session["user_ultimoacceso"] =
                                    buscaAcceso.fecha_ingreso.ToShortDateString() + " " +
                                    buscaAcceso.fecha_ingreso.ToShortTimeString();
                            }
                            else
                            {
                                Session["user_ultimoacceso"] = "";
                            }

                            context.icb_sessionlog.Add(new icb_sessionlog
                            {
                                estado        = true,
                                fecha_ingreso = DateTime.Now,
                                fecha_fin     = DateTime.Now,
                                id_usuario    = Convert.ToInt32(Session["user_usuarioid"])
                            });
                            context.SaveChanges();

                            //var buscarBodegasUsuario = context.bodega_usuario.Where(x => x.id_usuario == obj.user_id).ToList();
                            int va = 0;
                            var buscarBodegasUsuario = (from bodegaUsuario in context.bodega_usuario
                                                        join bodega in context.bodega_concesionario
                                                        on bodegaUsuario.id_bodega equals bodega.id
                                                        where bodegaUsuario.id_usuario == obj.user_id
                                                        select new
                            {
                                bodegaUsuario.id_bodega,
                                bodega.bodccs_nombre
                            }).ToList();
                            if (buscarBodegasUsuario.Count == 0)
                            {
                                if (va == 0)
                                {
                                    TempData["mensajeError"] =
                                        "El usuario no está asignado a ninguna bodega";
                                    return(RedirectToAction("login", "Login"));
                                }
                            }
                            else if (buscarBodegasUsuario.Count > 1)
                            {
                                TempData["variasBodegas"] = "Usuario asignado a varias bodegas";
                                return(View());
                            }


                            Session["user_bodegaNombre"] = buscarBodegasUsuario.Count > 0
                                ? buscarBodegasUsuario.FirstOrDefault().bodccs_nombre
                                : null;
                            Session["user_bodega"] = buscarBodegasUsuario.Count > 0
                                ? buscarBodegasUsuario.FirstOrDefault().id_bodega.ToString()
                                : null;

                            va = validarApertura(Convert.ToInt32(Session["user_bodega"]),
                                                 Convert.ToInt32(Session["user_usuarioid"]));
                            if (va == 0)
                            {
                                TempData["mesCerrado"] =
                                    "Mes se encuentra cerrado y el usuario no tiene permiso para abrirlo";
                                return(RedirectToAction("login", "Login"));
                            }

                            if (va == 2)
                            {
                                return(RedirectToAction("Index", "abrirMes"));
                            }

                            #region el mes esta abierto, se validan los roles y el usuario ingresa

                            if (va == 1)
                            {
                                // Validacion cuando el ususario tiene rol de ANFITRION TALLER
                                //if (obj.rol_id == 2024)
                                //{
                                //    return RedirectToAction("inicioAnfitrionTaller", "Inicio");
                                //}

                                //// Validacion cuando el ususario tiene rol de TECNICO
                                //if (obj.rol_id == 1014)
                                //{
                                //    return RedirectToAction("inicioTecnico", "Inicio");
                                //}

                                //// Validacion cuando el ususario tiene rol de PERITO
                                //if (obj.rol_id == 3)
                                //{
                                //    return RedirectToAction("Agendar", "peritaje");
                                //}

                                //// El rol 7 pertenece a anfitriona
                                //if (obj.rol_id == 7)
                                //{
                                //    return RedirectToAction("Create", "prospectos");
                                //}

                                //// Validacion cuando el ususario tiene rol de MENSAJERO
                                //if (obj.rol_id == 2038)
                                //{
                                //    return RedirectToAction("Index", "agendaMensajero");
                                //}

                                //Si rol user quiere decir que es asesor
                                if (obj.rols.clasificacion_rol == 3)
                                {
                                    sesion_logasesor buscarSesion = context.sesion_logasesor.OrderByDescending(x => x.id).Where(x =>
                                                                                                                                x.user_id == obj.user_id &&
                                                                                                                                x.fecha_inicia.Year == DateTime.Now.Year &&
                                                                                                                                x.fecha_inicia.Month == DateTime.Now.Month &&
                                                                                                                                x.fecha_inicia.Day == DateTime.Now.Day //&&x.estado==4
                                                                                                                                ).FirstOrDefault();

                                    if (buscarSesion != null)
                                    {
                                        // Si se encuentra en estado 4 significa que esta desconectado
                                        if (buscarSesion.estado == 4 ||
                                            buscarSesion.fecha_inicia.Year != DateTime.Now.Year ||
                                            buscarSesion.fecha_inicia.Month != DateTime.Now.Month ||
                                            buscarSesion.fecha_inicia.Day != DateTime.Now.Day)
                                        {
                                            sesion_logasesor nuevaSesion = new sesion_logasesor
                                            {
                                                estado        = 1,
                                                fecha_inicia  = DateTime.Now,
                                                fecha_termina = DateTime.Now,
                                                user_id       = obj.user_id,
                                                bodega        = Convert.ToInt32(Session["user_bodega"])
                                            };
                                            context.sesion_logasesor.Add(nuevaSesion);
                                            obj.sesion = true;
                                            context.Entry(obj).State = EntityState.Modified;
                                            int guardaLogSesion = context.SaveChanges();
                                            if (guardaLogSesion > 0)
                                            {
                                                sesion_logasesor ultimaSesion = context.sesion_logasesor.OrderByDescending(x => x.id)
                                                                                .FirstOrDefault();
                                                Session["id_sesion_asesor"] = ultimaSesion.id;
                                            }

                                            //Session["user_rol"] = "asesor";
                                        }
                                    }
                                    else
                                    {
                                        sesion_logasesor nuevaSesion = new sesion_logasesor
                                        {
                                            estado        = 1,
                                            fecha_inicia  = DateTime.Now,
                                            fecha_termina = DateTime.Now,
                                            user_id       = obj.user_id,
                                            bodega        = Convert.ToInt32(Session["user_bodega"])
                                        };
                                        context.sesion_logasesor.Add(nuevaSesion);
                                        context.SaveChanges();
                                        sesion_logasesor ultimaSesion = context.sesion_logasesor.OrderByDescending(x => x.id)
                                                                        .FirstOrDefault();
                                        Session["id_sesion_asesor"] = ultimaSesion.id;
                                    }

                                    //return RedirectToAction("inicioAsesor", "Inicio");
                                }
                            }

                            #endregion

                            //// Actualmente el valor del rol asesor corresponde al id 4 de la tabla roles
                            //var buscarRolAsesor = context.icb_sysparameter.FirstOrDefault(x=>x.syspar_cod=="P29");
                            //var idRol = buscarRolAsesor != null ? buscarRolAsesor.syspar_value : "4";
                            //var rolUser = obj.rol_id == Convert.ToInt32(idRol) ? true : false;

                            int  calcularDias     = ConsultarDiasCambioContrasena(obj);
                            rols buscarDiasDelRol = context.rols.FirstOrDefault(x => x.rol_id == obj.rol_id);
                            if (calcularDias > buscarDiasDelRol.dias_expiracion_clave)
                            {
                                TempData["claveExpiro"] = "Contraseña se vencio";
                                return(View());
                            }

                            return(RedirectToAction("Inicio", "inicio"));
                        }
                        else
                        {
                            TempData["mensajeError"] = "Usuario se encuentra inactivo";
                        }
                    }
                    else
                    {
                        // El usuario o la contrasenia esta mal escrito
                        TempData["mensajeError"] = "Usuario o contraseña incorrectos";
                        DateTime fechadehoy = DateTime.Now.Date;

                        //busco el usuario si existe
                        users usuexiste = context.users.Where(d => d.user_usuario == objUsu.user_usuario)
                                          .FirstOrDefault();
                        if (usuexiste != null)
                        {
                            intentos_fallidos_login nuevointentofallido = new intentos_fallidos_login
                            {
                                fecha      = DateTime.Now,
                                id_usuario = usuexiste.user_id
                            };
                            context.intentos_fallidos_login.Add(nuevointentofallido);
                            int guardado = context.SaveChanges();
                            //veo cuantos intentos tiene el día de hoy;
                            int cuantosintentos = context.intentos_fallidos_login
                                                  .Where(d => d.id_usuario == usuexiste.user_id && d.fecha >= fechadehoy).Count();
                            if (cuantosintentos > 2)
                            {
                                usuexiste.user_estado          = false;
                                context.Entry(usuexiste).State = EntityState.Modified;
                                context.SaveChanges();
                                TempData["mensajeError"] =
                                    "Usuario o contraseña incorrectos. Ha excedido el límite máximo de intentos. Su cuenta ha sido bloqueada. Por favor contacte con un administrador";
                            }
                        }
                    }
                }
            }
            catch (ArgumentNullException)
            {
                TempData["mensajeError"] = "Usuario o contraseña incorrectos";
            }

            return(View());
        }
コード例 #5
0
        //[ValidateAntiForgeryToken]
        public ActionResult update(rols rol, int?menu)
        {
            var jerarquia = context.clasificacion_rol.Select(d => new { id = d.id_clasificacion, nombre = d.nombre_clasificacion }).ToList();

            ViewBag.clasificacion_rol = new SelectList(jerarquia, "id", "nombre", rol.clasificacion_rol);
            var dashboard = context.dashboard_rol.Select(d => new { id = d.id_vista, nombre = d.nombre_vista }).ToList();

            ViewBag.dashboard_inicial = new SelectList(dashboard, "id", "nombre", rol.dashboard_inicial);
            if (ModelState.IsValid)
            {
                var nombrerol = rol.rol_nombre.Trim();
                //consulta si el registro esta en BD teniendo en cuenta el id de consulta
                var nom = context.rols
                          .Where(d => d.rol_nombre.ToUpper() == nombrerol.ToUpper() && d.rol_id == rol.rol_id).Count();

                if (nom == 1)
                {
                    var          cantidad    = Convert.ToInt32(Request["totalPermisosBodegas"]);
                    const string queryAcceso = "DELETE FROM [dbo].[rolacceso] WHERE [idrol]={0}";
                    var          rowsAcceso  = context.Database.ExecuteSqlCommand(queryAcceso, rol.rol_id);
                    for (var i = 0; i < cantidad; i++)
                    {
                        var idRolPermiso = Request["txtPermisoVista" + i];
                        var checkPermiso = Request["checkPermisoVista" + i];
                        if (idRolPermiso != null && checkPermiso != null)
                        {
                            context.rolacceso.Add(new rolacceso
                            {
                                idrol     = rol.rol_id,
                                idpermiso = Convert.ToInt32(idRolPermiso)
                            });
                        }
                    }

                    var          cantidades  = Convert.ToInt32(Request["totalOpcionesAcceso"]);
                    const string queryOpcion = "DELETE FROM [dbo].[opcion_acceso_rol] WHERE [id_rol]={0}";
                    var          rowsOpcion  = context.Database.ExecuteSqlCommand(queryOpcion, rol.rol_id);
                    for (var i = 0; i < cantidades; i++)
                    {
                        var idRolOpcion = Request["txtopcionAcceso" + i];
                        var checkOpcion = Request["checkOpcionAcceso" + i];
                        if (idRolOpcion != null && checkOpcion != null)
                        {
                            context.opcion_acceso_rol.Add(new opcion_acceso_rol
                            {
                                id_rol           = rol.rol_id,
                                id_opcion_acceso = Convert.ToInt32(idRolOpcion)
                            });
                        }
                    }

                    var idsModulos = Request["selectBusquedaModulos"];
                    if (idsModulos != null)
                    {
                        var idModulo        = idsModulos.Split(',');
                        var modulosActuales = context.Menu_rol.Where(x => x.idperfil == rol.rol_id).ToList();
                        foreach (var id in modulosActuales)
                        {
                            var query = "DELETE FROM [dbo].[Menu_rol] WHERE [idmenu]={0} AND [idperfil] =" +
                                        id.idperfil;
                            var rows = context.Database.ExecuteSqlCommand(query, id.idmenu);
                        }

                        foreach (var id in idModulo)
                        {
                            context.Menu_rol.Add(new Menu_rol {
                                idmenu = Convert.ToInt32(id), idperfil = rol.rol_id
                            });
                        }
                        context.SaveChanges();
                    }

                    rol.rol_nombre              = nombrerol.Trim();
                    rol.rolfec_actualizacion    = DateTime.Now;
                    rol.roluserid_actualizacion = Convert.ToInt32(Session["user_usuarioid"]);
                    context.Entry(rol).State    = EntityState.Modified;
                    context.SaveChanges();
                    TempData["mensaje"] = "La actualización del rol fue exitoso!";
                    var modulosAsignables1 = context.Menus.Where(x => x.url != "#").OrderBy(x => x.nombreMenu).ToList();
                    ViewBag.ModulosAsignables = modulosAsignables1;
                    ConsultaDatosCreacion(rol.rol_id);
                    BuscarFavoritos(menu);
                    return(RedirectToAction("update", new { id = rol.rol_id, menu }));
                }

                //verifico que NO exista el mismo rol con otro nombre
                var rol2 = context.rols
                           .Where(d => d.rol_nombre.ToUpper() == nombrerol.ToUpper() && d.rol_id != rol.rol_id).Count();
                if (rol2 > 0)
                {
                    TempData["mensaje_error"] = "El registro que ingreso ya se encuentra, por favor valide!";
                }
                else
                {
                    TempData["mensaje_error"] =
                        "El rol no existe en base de datos, por favor crearlo en la pestaña Crear.";
                }
            }

            var modulosAsignables = context.Menus.Where(x => x.url != "#").OrderBy(x => x.nombreMenu).ToList();

            ViewBag.ModulosAsignables = modulosAsignables;
            var modulosAsignados   = context.Menu_rol.Where(x => x.idperfil == rol.rol_id).ToList();
            var idModulosAsignados = "";
            var index = 0;

            foreach (var ids in modulosAsignados)
            {
                if (index == 0)
                {
                    idModulosAsignados += ids.idmenu;
                    index++;
                }
                else
                {
                    idModulosAsignados += "," + ids.idmenu;
                }
            }

            ViewBag.menusAsignados = idModulosAsignados;
            //ViewBag.permisosVistas = context.rolpermisos.ToList();
            ParametrosVista();
            ConsultaDatosCreacion(rol.rol_id);
            BuscarFavoritos(menu);
            return(View(rol));
        }
コード例 #6
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (textBoxUserName.Text.Equals(""))
     {
         MessageBox.Show("Hay que escribir un nombre", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         textBoxUserName.Focus();
     }
     else
     {
         if (textBoxEmail.Text.Equals(""))
         {
             MessageBox.Show("Hay que escribir un email", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             textBoxEmail.Focus();
         }
         else
         {
             if (comboBoxRol.SelectedIndex == -1)
             {
                 MessageBox.Show("Seleccionar un rol", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             }
             else
             {
                 String username = textBoxUserName.Text;
                 String email    = textBoxEmail.Text;
                 rols   rol      = (rols)comboBoxRol.SelectedItem;
                 if (rol.nom.Equals("SuperAdministrador"))
                 {
                     usuari.username   = username;
                     usuari.email      = email;
                     usuari.id_rol     = rol.id;
                     usuari.comunitats = null;
                     String missatge = "";
                     if (!modificar)
                     {
                         String password = textBoxPassword.Text;
                         String passCryp = BCrypt.Net.BCrypt.EnhancedHashPassword(password, BCrypt.Net.HashType.SHA512);
                         usuari.contrasenya = passCryp;
                         if (comprobarPassword())
                         {
                             missatge = AdminOrm.Insert(usuari);
                             if (missatge.Equals(""))
                             {
                                 MessageBox.Show("Usuare introducide correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                 this.Close();
                             }
                             else
                             {
                                 MessageBox.Show(missatge, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                             }
                         }
                     }
                     else
                     {
                         missatge = AdminOrm.Update(usuari);
                         if (missatge.Equals(""))
                         {
                             MessageBox.Show("Usuarie modificade correctamente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             this.Close();
                         }
                         else
                         {
                             MessageBox.Show(missatge, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         }
                     }
                 }
                 else
                 {
                     if (_comunitats.Count == 0)
                     {
                         MessageBox.Show("Hay que introducir almenos 1 comunidad", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                     }
                     else
                     {
                         String missatge = "";
                         usuari.username   = username;
                         usuari.email      = email;
                         usuari.id_rol     = rol.id;
                         usuari.comunitats = _comunitats;
                         if (!modificar)
                         {
                             String password = textBoxPassword.Text;
                             String passCryp = BCrypt.Net.BCrypt.EnhancedHashPassword(password, BCrypt.Net.HashType.SHA512);
                             usuari.contrasenya = passCryp;
                             if (comprobarPassword())
                             {
                                 missatge = AdminOrm.Insert(usuari);
                                 if (missatge.Equals(""))
                                 {
                                     MessageBox.Show("Usuarie introducide correctamente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                     this.Close();
                                 }
                                 else
                                 {
                                     MessageBox.Show(missatge, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                 }
                             }
                         }
                         else
                         {
                             missatge = AdminOrm.Update(usuari);
                             if (missatge.Equals(""))
                             {
                                 MessageBox.Show("Usuarie modificade correctamente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                 this.Close();
                             }
                             else
                             {
                                 MessageBox.Show(missatge, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                             }
                         }
                     }
                 }
             }
         }
     }
 }