internal static bool IsFilterableColumn(IMetaColumn column, IPrincipal user) { DisplayAttribute attribute = column.Attributes.FirstOrDefault <DisplayAttribute>(); if ((attribute != null) && attribute.GetAutoGenerateFilter().HasValue) { return(attribute.GetAutoGenerateFilter().Value); } if (!string.IsNullOrEmpty(column.FilterUIHint)) { return(true); } if (!column.Scaffold) { return(false); } if (column.IsCustomProperty) { return(false); } IMetaForeignKeyColumn column2 = column as IMetaForeignKeyColumn; if (column2 != null) { return(column2.ParentTable.CanRead(user)); } return((column.ColumnType == typeof(bool)) || (column.GetEnumType() != null)); }
internal static bool IsFilterableColumn(IMetaColumn column, IPrincipal user) { Debug.Assert(column != null); var displayAttribute = column.Attributes.FirstOrDefault <DisplayAttribute>(); if (displayAttribute != null && displayAttribute.GetAutoGenerateFilter().HasValue) { return(displayAttribute.GetAutoGenerateFilter().Value); } if (!String.IsNullOrEmpty(column.FilterUIHint)) { return(true); } // non-scaffolded columns should not be displayed by default if (!column.Scaffold) { return(false); } // custom properties won't be queryable by the server if (column.IsCustomProperty) { return(false); } var fkColumn = column as IMetaForeignKeyColumn; if (fkColumn != null) { // Only allow if the user has access to the parent table return(fkColumn.ParentTable.CanRead(user)); } if (column.ColumnType == typeof(bool)) { return(true); } if (column.GetEnumType() != null) { return(true); } return(false); }
internal static bool IsFilterableColumn(IMetaColumn column, IPrincipal user) { Debug.Assert(column != null); var displayAttribute = column.Attributes.FirstOrDefault<DisplayAttribute>(); if (displayAttribute != null && displayAttribute.GetAutoGenerateFilter().HasValue) { return displayAttribute.GetAutoGenerateFilter().Value; } if (!String.IsNullOrEmpty(column.FilterUIHint)) { return true; } // non-scaffolded columns should not be displayed by default if (!column.Scaffold) { return false; } // custom properties won't be queryable by the server if (column.IsCustomProperty) { return false; } var fkColumn = column as IMetaForeignKeyColumn; if (fkColumn != null) { // Only allow if the user has access to the parent table return fkColumn.ParentTable.CanRead(user); } if (column.ColumnType == typeof(bool)) { return true; } if (column.GetEnumType() != null) { return true; } return false; }