Пример #1
0
        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);
        }
Пример #3
0
        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;
        }