/// <summary> /// Create Authorization based on a given type. /// </summary> /// <param name="values">the values (can provide none if ByPageACL or ByAuthenticated)</param> /// <returns></returns> public RegisterPageBuilderAuthorizationAttribute(PageBuilderAuthorizationTypes pageBuilderType, string[] pageBuilderValues, AuthorizationType type, string[] values = null, bool templateValuesArePrefix = false) { pageBuilderValues ??= Array.Empty <string>(); CreatePageBuilderConfiguration(pageBuilderType, templateValuesArePrefix, pageBuilderValues); values ??= Array.Empty <string>(); CreateAuthorizationCofiguration(type, values); }
/// <summary> /// Use a custom IAuthorization class. Must register this in the services container BEFORE the services.UseAuthorization(). /// </summary> /// <param name="customAuthorization">Your class that implements IAuthorization, must also register in the services container BEFORE the services.UseAuthorization().</param> /// <returns></returns> public RegisterPageBuilderAuthorizationAttribute(PageBuilderAuthorizationTypes pageBuilderType, string pageBuilderValues, Type customAuthorization, bool templateValuesArePrefix = false) { CreatePageBuilderConfiguration(pageBuilderType, templateValuesArePrefix, ValueToArray(pageBuilderValues)); AuthorizationConfiguration = new AuthorizationConfiguration() { CustomAuthorization = customAuthorization }; }
private void CreatePageBuilderConfiguration(PageBuilderAuthorizationTypes type, bool templateValuesArePrefix, string[] values) { PageBuilderConfiguration = new PageBuilderAuthorizationConfiguration(); switch (type) { case PageBuilderAuthorizationTypes.ByPageTemplate: PageBuilderConfiguration.PageTemplateIdentifiers = values; PageBuilderConfiguration.TemplateIdentifiersArePrefix = templateValuesArePrefix; break; case PageBuilderAuthorizationTypes.ByPageType: PageBuilderConfiguration.PageClassNames = values; break; } }
/// <summary> /// Create Authorization based on a given type. /// </summary> /// <param name="users">; , or | separated string of values, can put none or null if ByPageACL or ByAuthenticated</param> /// <returns></returns> public RegisterPageBuilderAuthorizationAttribute(PageBuilderAuthorizationTypes pageBuilderType, string pageBuilderValues, AuthorizationType type, string values = null, bool templateValuesArePrefix = false) { CreatePageBuilderConfiguration(pageBuilderType, templateValuesArePrefix, ValueToArray(pageBuilderValues)); CreateAuthorizationCofiguration(type, ValueToArray(values)); }