blob: 3f4c30708ce2da9f4a72bd5e812713be658851be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
namespace marlin.web.Util;
using System.Security.Claims;
public static class ClaimsPrincipalExtensions
{
public static Guid? GetAgentId(this ClaimsPrincipal user) => user.GetGuidClaim("agent_id");
public static Guid? GetJobId(this ClaimsPrincipal user) => user.GetGuidClaim("job_id");
public static Guid? GetUserId(this ClaimsPrincipal user) => user.GetGuidClaim("user_id");
public static Guid RequireAgentId(this ClaimsPrincipal user) =>
user.GetAgentId() ?? throw new InvalidOperationException("Request has no agent_id claim.");
public static Guid RequireJobId(this ClaimsPrincipal user) =>
user.GetJobId() ?? throw new InvalidOperationException("Request has no job_id claim.");
public static Guid RequireUserId(this ClaimsPrincipal user) =>
user.GetUserId() ?? throw new InvalidOperationException("Request has no user_id claim.");
private static Guid? GetGuidClaim(this ClaimsPrincipal user, string type) =>
Guid.TryParse(user.FindFirstValue(type), out var value) ? value : null;
}
|