private void AddPageTypePropertyDefinitions(IEnumerable<PropertyInfo> properties, ICollection<AuthorizedPropertyDefinition> definitions, TabDefinitionCollection tabDefinitions, string hierarchy, AuthorizeAttribute propertyGroupAuthorizeAttribute) { var pageTypeProperties = properties.Where(AttributedTypesUtility.PropertyHasAttribute<PageTypePropertyAttribute>).ToList(); foreach (PropertyInfo property in pageTypeProperties) { AuthorizeAttribute attribute = AttributedTypesUtility .GetAttributesFromProperty<AuthorizeAttribute>(property) .FirstOrDefault(); // if property has an authorize attribute if (attribute != null) { definitions.Add(AuthorizedPropertyDefinitionFactory.Create(string.Concat(hierarchy, property.Name), attribute.GetAuthorizedPrincipals())); continue; } // Add any tab authorization rules if (AddTabAuthorizationRules(tabDefinitions, property, definitions, hierarchy)) continue; // if property group authorize attribute has been defined then apply to property if (propertyGroupAuthorizeAttribute != null) { definitions.Add(AuthorizedPropertyDefinitionFactory.Create(string.Concat(hierarchy, property.Name), propertyGroupAuthorizeAttribute.GetAuthorizedPrincipals())); continue; } // if the page type class has an authorize attribute if (HasClassLevelAttribute) definitions.Add(AuthorizedPropertyDefinitionFactory.Create(string.Concat(hierarchy, property.Name), ClassAttribute.GetAuthorizedPrincipals())); } }
public TabDefinitionCollection List() { var tabCollection = new TabDefinitionCollection(); foreach (var tab in MapRecordsToExposedObjects(tabs)) { tabCollection.Add(tab); } return tabCollection; }
public TabDefinitionCollection List() { var tabCollection = new TabDefinitionCollection(); foreach (var tab in MapRecordsToExposedObjects(tabs)) { tabCollection.Add(tab); } return(tabCollection); }
public TabDefinitionCollection List() { TabDefinitionCollection tabDefinitionCollection = new TabDefinitionCollection { new TabDefinition { ID = 100, IsSystemTab = false, Name = "MetaData" }, new TabDefinition { ID = 101, IsSystemTab = true, Name = "Information" } }; return tabDefinitionCollection; }
private void AddPageTypePropertyGroupDefinitions(TabDefinitionCollection tabDefinitions, ICollection<AuthorizedPropertyDefinition> definitions) { foreach (PropertyInfo property in Properties.Where(AttributedTypesUtility.PropertyHasAttribute<PageTypePropertyGroupAttribute>)) { if (!property.PropertyType.IsSubclassOf(typeof(PageTypePropertyGroup))) continue; IEnumerable<PropertyInfo> propertyGroupProperties = AttributedTypesUtility.GetPublicOrPrivateProperties(property.PropertyType) .Where(AttributedTypesUtility.PropertyHasAttribute<PageTypePropertyAttribute>) .ToList(); AuthorizeAttribute authorizeAttribute = AttributedTypesUtility.GetAttributesFromProperty<AuthorizeAttribute>(property) .FirstOrDefault(); AddPageTypePropertyDefinitions(propertyGroupProperties, definitions, tabDefinitions, string.Concat(property.Name, "-"), authorizeAttribute); } }