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)); } }
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); }
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)); }
//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); }