Compare commits
3
Commits
a3f461478c
...
c4a0469bae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4a0469bae | ||
|
|
bf384d7e6a | ||
|
|
957d2210a9 |
@@ -29,7 +29,7 @@ builder.Services.AddApiVersioning(options =>
|
|||||||
|
|
||||||
builder.Services.AddScoped<ActiveUserFilter>();
|
builder.Services.AddScoped<ActiveUserFilter>();
|
||||||
builder.Services.AddScoped<UserRoleFilter>();
|
builder.Services.AddScoped<UserRoleFilter>();
|
||||||
builder.Services.AddScoped<ITenantContextService, TenantContextService>();
|
builder.Services.AddTransient<ITenantContextService, TenantContextService>();
|
||||||
|
|
||||||
builder.Services.AddEndpoints(Assembly.GetExecutingAssembly());
|
builder.Services.AddEndpoints(Assembly.GetExecutingAssembly());
|
||||||
builder.Services.AddApiServices(builder.Configuration);
|
builder.Services.AddApiServices(builder.Configuration);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace PostFundManagement.Application.Extensions;
|
namespace PostFundManagement.Application.Extensions;
|
||||||
|
|
||||||
public static class General
|
public static class General
|
||||||
{
|
{
|
||||||
@@ -16,8 +16,7 @@ public static class General
|
|||||||
|
|
||||||
public static (bool Decoded, Guid userId) GetUserId(this ClaimsPrincipal principal)
|
public static (bool Decoded, Guid userId) GetUserId(this ClaimsPrincipal principal)
|
||||||
{
|
{
|
||||||
var subClaim = principal.FindFirst(JwtRegisteredClaimNames.Sub)?.Value
|
var subClaim = principal.FindFirst(JwtRegisteredClaimNames.Sub)?.Value ?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
||||||
?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
|
||||||
|
|
||||||
var decoded = Guid.TryParse(subClaim, out var userId);
|
var decoded = Guid.TryParse(subClaim, out var userId);
|
||||||
|
|
||||||
@@ -26,34 +25,20 @@ public static class General
|
|||||||
|
|
||||||
public static (bool Decoded, string email) GetUserEmail(this ClaimsPrincipal principal)
|
public static (bool Decoded, string email) GetUserEmail(this ClaimsPrincipal principal)
|
||||||
{
|
{
|
||||||
var emailClaim = principal.FindFirst("email")?.Value
|
var emailClaim = principal.FindFirst("email")?.Value ?? principal.FindFirst(ClaimTypes.Email)?.Value;
|
||||||
?? principal.FindFirst(ClaimTypes.Email)?.Value
|
|
||||||
?? principal.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")?.Value
|
|
||||||
?? principal.FindFirst("preferred_username")?.Value
|
|
||||||
?? principal.FindFirst("name")?.Value
|
|
||||||
?? principal.FindFirst(ClaimTypes.Name)?.Value;
|
|
||||||
|
|
||||||
var decoded = !string.IsNullOrWhiteSpace(emailClaim);
|
var decoded = !string.IsNullOrWhiteSpace(emailClaim);
|
||||||
|
|
||||||
return (decoded, emailClaim ?? string.Empty);
|
return (decoded, emailClaim!);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static (bool Decoded, string role) GetUserRole(this ClaimsPrincipal principal)
|
public static (bool Decoded, string role) GetUserRole(this ClaimsPrincipal principal)
|
||||||
{
|
{
|
||||||
var roleClaims = principal.FindAll("role")
|
var roleClaim = principal.FindFirst("role")?.Value ?? principal.FindFirst(ClaimTypes.Role)?.Value;
|
||||||
.Concat(principal.FindAll(ClaimTypes.Role))
|
|
||||||
.Concat(principal.FindAll("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"))
|
|
||||||
.Concat(principal.FindAll("roles"))
|
|
||||||
.Select(c => c.Value)
|
|
||||||
.Where(v => !string.IsNullOrWhiteSpace(v))
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
var partnerRole = roleClaims.FirstOrDefault(r => r.Equals("Partner", StringComparison.OrdinalIgnoreCase));
|
var decoded = !string.IsNullOrWhiteSpace(roleClaim);
|
||||||
var role = partnerRole ?? roleClaims.FirstOrDefault();
|
|
||||||
|
|
||||||
var decoded = !string.IsNullOrWhiteSpace(role);
|
return (decoded, roleClaim!);
|
||||||
|
|
||||||
return (decoded, role ?? string.Empty);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Microsoft.AspNetCore.Mvc.ProblemDetails ToProblems(this IReadOnlyList<IError> errors, int statusCode = StatusCodes.Status400BadRequest) => new()
|
public static Microsoft.AspNetCore.Mvc.ProblemDetails ToProblems(this IReadOnlyList<IError> errors, int statusCode = StatusCodes.Status400BadRequest) => new()
|
||||||
|
|||||||
Reference in New Issue
Block a user