Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 private bool PermisoFilter(string tipo, Modulo modulo)
 {
     if (modulo.Tipo == tipo)
     {
         return(FrontUser.TienePermiso(modulo.Controller + "-" + modulo.Action, RolesPermisos.Permiso));
     }
     return(false);
 }
Esempio n. 3
0
        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;
        }