public static bool TienePermiso(String Modulo, RolesPermisos valor) { try { var usuario = FrontUser.Get(); switch (valor) { case RolesPermisos.Crear_Registro: return(usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo) && x.Permiso.Crear).Any()); case RolesPermisos.Eliminar_Registro: return(usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo) && x.Permiso.Eliminar).Any()); case RolesPermisos.Visualizar_Registro: return(usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo) && x.Permiso.Mostrar).Any()); case RolesPermisos.Editar_Registro: return(usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo) && x.Permiso.Editar).Any()); case RolesPermisos.Permiso: if (!usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo)).Any()) { return(true); } return(usuario.Rol.PermisoRol.Where(x => x.Modulo.Equals(Modulo) && x.Permiso.Crear && x.Permiso.Editar && x.Permiso.Mostrar && x.Permiso.Eliminar).Any()); default: return(false); } } catch { return(false); } }
private bool PermisoFilter(string tipo, Modulo modulo) { if (modulo.Tipo == tipo) { return(FrontUser.TienePermiso(modulo.Controller + "-" + modulo.Action, RolesPermisos.Permiso)); } return(false); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (Permiso == RolesPermisos.None) { switch (filterContext.ActionDescriptor.ActionName) { case "Create": Permiso = RolesPermisos.Crear_Registro; Modulo = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; break; case "Details": Permiso = RolesPermisos.Visualizar_Registro; Modulo = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; break; case "Edit": Permiso = RolesPermisos.Editar_Registro; Modulo = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; break; case "Delete": Permiso = RolesPermisos.Eliminar_Registro; Modulo = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; break; default: Modulo = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName + "-" + filterContext.ActionDescriptor.ActionName; Permiso = RolesPermisos.Permiso; break; } } if (!FrontUser.TienePermiso(Modulo ?? filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, Permiso)) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "Index", estado = "No autorizado" })); } Permiso = RolesPermisos.None; }