private static List <IApplicationDisplayable> OnApplySecurityPolicy(ApplicationSchemaDefinition schema, IEnumerable <Role> userRoles) { var activeFieldRoles = RoleManager.ActiveFieldRoles(); if (activeFieldRoles == null || activeFieldRoles.Count == 0) { return(schema.Displayables); } var resultingFields = new List <IApplicationDisplayable>(); foreach (var field in schema.Displayables) { if (!activeFieldRoles.Contains(field.Role)) { resultingFields.Add(field); } else { var enumerable = userRoles as IList <Role> ?? userRoles.ToList(); if (enumerable.Any(r => r.Name == field.Role)) { resultingFields.Add(field); } } } return(resultingFields); }