Пример #1
0
 public ActionResult Guardar(PermisoSimple persona)
 {
     using (var db = new ApplicationDbContext())
     {
         List <Persona> person = db.Personal.ToList();
         ViewBag.Persona = person;
     }
     if (ModelState.IsValid)
     {
         using (var db = new ApplicationDbContext())
         {
             if (persona.Id > 0)
             {
                 db.Entry(persona).State = EntityState.Modified;
             }
             else
             {
                 db.Entry(persona).State = EntityState.Added;
             }
             db.SaveChanges();
         }
         return(Redirect("~/PermisoSimple"));
     }
     else
     {
         return(View("~/Views/PermisoSimple/Agregar.cshtml", persona));
     }
 }
Пример #2
0
        private static Permiso ObtenerPermiso(int permisoId, int profundidad)
        {
            Permiso    permiso;
            List <int> hijosIds = new List <int>();

            if (profundidad < 10)
            {
                hijosIds = ObtenerPermisosHijos(permisoId);
            }

            if (hijosIds.Any())
            {
                // Es un permiso compuesto
                permiso = new PermisoCompuesto();
                foreach (int hijoId in hijosIds)
                {
                    Permiso permisoHijo = ObtenerPermiso(hijoId, profundidad + 1);
                    permiso.AgregarPermisoHijo(permisoHijo);
                }
            }
            else
            {
                // Es un permiso simple
                permiso = new PermisoSimple();
            }

            CompletarPermiso(permiso, permisoId);

            return(permiso);
        }
Пример #3
0
 public ActionResult Agregar(int id = 0)
 {
     using (var db = new ApplicationDbContext())
     {
         List <Persona> person = db.Personal.ToList();
         ViewBag.Persona = person;
         permiso         = db.PermisosSimples.Include(x => x.Persona).Where(x => x.Id == id).SingleOrDefault();
     }
     return(View(id == 0 ? new PermisoSimple() : permiso));
 }
Пример #4
0
        //public Usuario GestorUsuarios { get; set; } = new Usuario();

        public ResultadoAutenticacion Iniciar(UsuarioBEL usuario)
        {
            ResultadoAutenticacion valido = ResultadoAutenticacion.UsuarioInvalido;

            if (!(usuario == null))
            {
                // *************** Restauracion de Base ************
                if (usuario.Nombre.Equals("admin") && usuario.Clave.Equals("admin"))
                {
                    PermisoSimple p = new PermisoSimple();
                    p.Nombre = "Permiso_Restaurar";
                    usuario.Perfil.Add(p);
                    EstablecerUsuarioActual(usuario);
                    return(ResultadoAutenticacion.UsuarioValido);
                }

                // buscar el usuario por su nombre
                UsuarioBEL usuarioEncontrado = new Usuario().ObtenerUno(usuario);
                if (!(usuarioEncontrado == null))
                {
                    // verificar que el usuario no este bloqueado
                    if (!usuarioEncontrado.Bloqueado)
                    {
                        // encriptar la clave ingresada por el usuario
                        string claveEncriptada = Criptografia.ObtenerInstancia.GetHashMD5(usuario.Clave);
                        // verificar que las contraseñas encriptadas coinciden
                        if (usuarioEncontrado.Clave.Equals(claveEncriptada))
                        {
                            valido = ResultadoAutenticacion.UsuarioValido;
                            // blanquear intentos incorrectos
                            usuarioEncontrado.IntentosIncorrectos = 0;
                            // establecer el usuario logueado actualmente en sesion
                            EstablecerUsuarioActual(usuarioEncontrado);
                            Bitacora.RegistrarEnBitacora("Inicio sesión del usuario: " + usuarioEncontrado.Nombre, TipoEvento.Auditoria);
                        }
                        else
                        {
                            // contraseñas invalidas, incrementar el contado de intentos fallidos
                            usuarioEncontrado.IntentosIncorrectos += 1;
                            Bitacora.RegistrarEnBitacora("Contraseña inválida usuario: " + usuarioEncontrado.Nombre + " Intentos incorrectos: " + usuarioEncontrado.IntentosIncorrectos, TipoEvento.Seguridad);
                            // verificar si los intentos fallidos es mayor o igual a 3
                            if (usuarioEncontrado.IntentosIncorrectos >= 3)
                            {
                                usuarioEncontrado.Bloqueado = true;
                                valido = ResultadoAutenticacion.UsuarioBloqueado;
                                Bitacora.RegistrarEnBitacora("Se bloqueó el usuario: " + usuarioEncontrado.Nombre + " por Intentos incorrectos: " + usuarioEncontrado.IntentosIncorrectos, TipoEvento.Seguridad);
                            }
                        }
                        // guardar los cambios del usuario
                        new Usuario().Modificar(usuarioEncontrado);
                    }
                    else
                    {
                        valido = ResultadoAutenticacion.UsuarioBloqueado;
                        Bitacora.RegistrarEnBitacora("El usuario " + usuarioEncontrado.Nombre + " se encuentra bloqueado", TipoEvento.Seguridad);
                    }
                }
                else
                {
                    Logger.WriteLog("No existe el usuario: " + usuario.Nombre);
                }
            }
            return(valido);
        }