@@ -28,21 +28,20 @@ internal static IUmbracoBuilder AddAuthorizationPolicies(this IUmbracoBuilder bu
2828 builder . Services . AddSingleton < IAuthorizationHandler , MediaPermissionHandler > ( ) ;
2929 builder . Services . AddSingleton < IAuthorizationHandler , UserGroupPermissionHandler > ( ) ;
3030 builder . Services . AddSingleton < IAuthorizationHandler , UserPermissionHandler > ( ) ;
31+ builder . Services . AddSingleton < IAuthorizationHandler , AllowedApplicationHandler > ( ) ;
3132
3233 builder . Services . AddAuthorization ( CreatePolicies ) ;
3334 return builder ;
3435 }
3536
3637 private static void CreatePolicies ( AuthorizationOptions options )
3738 {
38- void AddPolicy ( string policyName , string claimType , params string [ ] allowedClaimValues )
39- {
40- options . AddPolicy ( policyName , policy =>
39+ void AddAllowedApplicationsPolicy ( string policyName , params string [ ] allowedClaimValues )
40+ => options . AddPolicy ( policyName , policy =>
4141 {
4242 policy . AuthenticationSchemes . Add ( OpenIddictValidationAspNetCoreDefaults . AuthenticationScheme ) ;
43- policy . RequireClaim ( claimType , allowedClaimValues ) ;
43+ policy . Requirements . Add ( new AllowedApplicationRequirement ( allowedClaimValues ) ) ;
4444 } ) ;
45- }
4645
4746 options . AddPolicy ( AuthorizationPolicies . BackOfficeAccess , policy =>
4847 {
@@ -56,39 +55,39 @@ void AddPolicy(string policyName, string claimType, params string[] allowedClaim
5655 policy . RequireRole ( Constants . Security . AdminGroupAlias ) ;
5756 } ) ;
5857
59- AddPolicy ( AuthorizationPolicies . SectionAccessContent , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Content ) ;
60- AddPolicy ( AuthorizationPolicies . SectionAccessContentOrMedia , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Content , Constants . Applications . Media ) ;
61- AddPolicy ( AuthorizationPolicies . SectionAccessForContentTree , Constants . Security . AllowedApplicationsClaimType ,
58+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessContent , Constants . Applications . Content ) ;
59+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessContentOrMedia , Constants . Applications . Content , Constants . Applications . Media ) ;
60+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessForContentTree ,
6261 Constants . Applications . Content , Constants . Applications . Media , Constants . Applications . Users ,
6362 Constants . Applications . Settings , Constants . Applications . Packages , Constants . Applications . Members ) ;
64- AddPolicy ( AuthorizationPolicies . SectionAccessForMediaTree , Constants . Security . AllowedApplicationsClaimType ,
63+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessForMediaTree ,
6564 Constants . Applications . Content , Constants . Applications . Media , Constants . Applications . Users ,
6665 Constants . Applications . Settings , Constants . Applications . Packages , Constants . Applications . Members ) ;
67- AddPolicy ( AuthorizationPolicies . SectionAccessForMemberTree , Constants . Security . AllowedApplicationsClaimType ,
66+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessForMemberTree ,
6867 Constants . Applications . Content , Constants . Applications . Media , Constants . Applications . Members ) ;
69- AddPolicy ( AuthorizationPolicies . SectionAccessMedia , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Media ) ;
70- AddPolicy ( AuthorizationPolicies . SectionAccessMembers , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Members ) ;
71- AddPolicy ( AuthorizationPolicies . SectionAccessPackages , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Packages ) ;
72- AddPolicy ( AuthorizationPolicies . SectionAccessSettings , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
73- AddPolicy ( AuthorizationPolicies . SectionAccessUsers , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Users ) ;
68+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessMedia , Constants . Applications . Media ) ;
69+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessMembers , Constants . Applications . Members ) ;
70+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessPackages , Constants . Applications . Packages ) ;
71+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessSettings , Constants . Applications . Settings ) ;
72+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . SectionAccessUsers , Constants . Applications . Users ) ;
7473
75- AddPolicy ( AuthorizationPolicies . TreeAccessDataTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
76- AddPolicy ( AuthorizationPolicies . TreeAccessDictionary , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Translation ) ;
77- AddPolicy ( AuthorizationPolicies . TreeAccessDictionaryOrTemplates , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Translation , Constants . Applications . Settings ) ;
78- AddPolicy ( AuthorizationPolicies . TreeAccessDocuments , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Content ) ;
79- AddPolicy ( AuthorizationPolicies . TreeAccessDocumentsOrDocumentTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Content , Constants . Applications . Settings ) ;
80- AddPolicy ( AuthorizationPolicies . TreeAccessDocumentTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
81- AddPolicy ( AuthorizationPolicies . TreeAccessLanguages , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
82- AddPolicy ( AuthorizationPolicies . TreeAccessMediaTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
83- AddPolicy ( AuthorizationPolicies . TreeAccessMediaOrMediaTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Media , Constants . Applications . Settings ) ;
84- AddPolicy ( AuthorizationPolicies . TreeAccessMemberGroups , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Members ) ;
85- AddPolicy ( AuthorizationPolicies . TreeAccessMemberTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
86- AddPolicy ( AuthorizationPolicies . TreeAccessPartialViews , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
87- AddPolicy ( AuthorizationPolicies . TreeAccessRelationTypes , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
88- AddPolicy ( AuthorizationPolicies . TreeAccessScripts , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
89- AddPolicy ( AuthorizationPolicies . TreeAccessStylesheets , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
90- AddPolicy ( AuthorizationPolicies . TreeAccessTemplates , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
91- AddPolicy ( AuthorizationPolicies . TreeAccessWebhooks , Constants . Security . AllowedApplicationsClaimType , Constants . Applications . Settings ) ;
74+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDataTypes , Constants . Applications . Settings ) ;
75+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDictionary , Constants . Applications . Translation ) ;
76+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDictionaryOrTemplates , Constants . Applications . Translation , Constants . Applications . Settings ) ;
77+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDocuments , Constants . Applications . Content ) ;
78+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDocumentsOrDocumentTypes , Constants . Applications . Content , Constants . Applications . Settings ) ;
79+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessDocumentTypes , Constants . Applications . Settings ) ;
80+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessLanguages , Constants . Applications . Settings ) ;
81+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessMediaTypes , Constants . Applications . Settings ) ;
82+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessMediaOrMediaTypes , Constants . Applications . Media , Constants . Applications . Settings ) ;
83+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessMemberGroups , Constants . Applications . Members ) ;
84+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessMemberTypes , Constants . Applications . Settings ) ;
85+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessPartialViews , Constants . Applications . Settings ) ;
86+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessRelationTypes , Constants . Applications . Settings ) ;
87+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessScripts , Constants . Applications . Settings ) ;
88+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessStylesheets , Constants . Applications . Settings ) ;
89+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessTemplates , Constants . Applications . Settings ) ;
90+ AddAllowedApplicationsPolicy ( AuthorizationPolicies . TreeAccessWebhooks , Constants . Applications . Settings ) ;
9291
9392 // Contextual permissions
9493 options . AddPolicy ( AuthorizationPolicies . ContentPermissionByResource , policy =>
0 commit comments