Warren Buckley
06/17/2024, 9:02 PMWarren Buckley
06/17/2024, 9:04 PM[Authorize(Policy = AuthorizationPolicies.SectionAccessContent)]
But instead I want to check my own custom section, or in my case checking if the user has the new custom content/document permission I added with a TS manifest to the user group/current user?
@Sven Geusens or @Bjarke BergMatt Wise
06/18/2024, 5:50 AMWarren Buckley
06/18/2024, 8:16 AMKevin Jump
06/18/2024, 8:23 AMKevin Jump
06/18/2024, 8:23 AMWarren Buckley
06/18/2024, 9:28 AMWarren Buckley
06/18/2024, 9:29 AMWarren Buckley
06/18/2024, 9:29 AMWarren Buckley
06/18/2024, 9:29 AMWarren Buckley
06/18/2024, 11:34 AMWarren Buckley
06/18/2024, 11:36 AM[HasSection("mySectionAlias")]
Sven Geusens
06/18/2024, 2:28 PMWarren Buckley
06/18/2024, 2:33 PMSven Geusens
06/18/2024, 2:44 PMWarren Buckley
06/18/2024, 2:45 PMSven Geusens
06/18/2024, 2:46 PMSven Geusens
06/18/2024, 2:46 PMSven Geusens
06/18/2024, 2:47 PMWarren Buckley
06/18/2024, 2:48 PMSven Geusens
06/18/2024, 2:48 PMWarren Buckley
06/18/2024, 7:51 PM_authorizationService.AuthorizeResourceAsync
and not decorating it with an attribute like others ?!Warren Buckley
06/18/2024, 7:52 PMWarren Buckley
06/18/2024, 7:58 PMpolicy.AuthenticationSchemes.Add(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);
Warren Buckley
06/18/2024, 8:04 PMcsharp
AuthorizationResult authorizationResult = await _authorizationService.AuthorizeResourceAsync(
User,
ContentPermissionResource.WithKeys(ActionMove.ActionLetter, new[] { moveDocumentRequestModel.Target?.Id, id }),
AuthorizationPolicies.ContentPermissionByResource);
So rather ActionMove.ActionLetter
I use my string/verb for the permission ?!Warren Buckley
06/18/2024, 8:06 PMWarren Buckley
06/18/2024, 8:12 PMcsharp
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("HasExaminePeekEnabled", policy =>
policy.Requirements.Add(new CheckDocumentPermision("HasExaminePeekCustomPermissionVerb")));
});
Then I could use a C# attribute on the controller
[Authorize(Policy="HasExaminePeekEnabled")]
Warren Buckley
06/18/2024, 9:00 PMcsharp
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("IsWarren", policy =>
{
// For simple stuff - saves writing a requirement and handler
policy.RequireAssertion(context =>
{
// Simple example to check the Given Name claim contains Warren
// So if you change the name of your user to include warren it will pass
// Other simple example could be to check the domain
// of the email address found 'context.User.Identity.Name'
return context.User.GetClaim(ClaimTypes.GivenName).ToLower().Contains("warren");
});
});
});
Then on my controller
[Authorize(Policy = "IsWarren")]
Warren Buckley
06/20/2024, 12:29 PMIPermissionResource
used for in Umbraco in your sample (as not in the general .NET docs) @User
So curious why I would want/care about it?Sven Geusens
06/21/2024, 11:26 AMSven Geusens
06/21/2024, 11:35 AMWarren Buckley
06/21/2024, 11:36 AMWarren Buckley
06/21/2024, 11:37 AMSven Geusens
07/10/2024, 11:54 AMWarren Buckley
07/10/2024, 11:56 AMWarren Buckley
07/10/2024, 11:57 AMSven Geusens
07/10/2024, 12:47 PMSven Geusens
07/10/2024, 1:03 PMSven Geusens
07/10/2024, 1:14 PMSven Geusens
07/10/2024, 1:16 PMSven Geusens
07/10/2024, 1:36 PMWarren Buckley
07/10/2024, 1:57 PMWarren Buckley
07/10/2024, 1:57 PMWarren Buckley
07/10/2024, 2:26 PMSven Geusens
07/10/2024, 2:29 PMSven Geusens
08/01/2024, 8:21 AMWarren Buckley
08/01/2024, 10:59 AMWarren Buckley
08/01/2024, 10:59 AMSven Geusens
08/05/2024, 7:47 AM