in src/Saas.Lib/Saas.Authorization/Saas.AspNetCore.Authorization/ClaimTransformers/ClaimPermissionToRoleTransformer.cs [33:61]
public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
System.Collections.Generic.IEnumerable<Claim> customClaims = principal.Claims
.Where(c => _sourceClaimType
.Equals(c.Type, StringComparison.OrdinalIgnoreCase));
System.Collections.Generic.IEnumerable<Claim> roleClaims = customClaims
.SelectMany(c =>
{
return c.Value.Split(' ').Select(s =>
new Claim(_roleClaimType, s));
});
if (!roleClaims.Any())
{
return Task.FromResult(principal);
}
ClaimsPrincipal transformed = new(principal);
ClaimsIdentity rolesIdentity = new(
roleClaims,
_authenticationType,
null,
_roleClaimType);
transformed.AddIdentity(rolesIdentity);
return Task.FromResult(transformed);
}