Files
vigilcare-clinical/VigilCareClinicalAPI/Services/CurrentUserService.cs
T

29 lines
972 B
C#

using System.Security.Claims;
public class CurrentUserService : ICurrentUserService
{
private readonly IHttpContextAccessor _http;
public CurrentUserService(IHttpContextAccessor http) => _http = http;
public Guid? UserId =>
Guid.TryParse(_http.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier), out var id)
? id : null;
public string? Username => _http.HttpContext?.User.FindFirstValue(ClaimTypes.Name);
public string? DisplayName => _http.HttpContext?.User.FindFirstValue("display_name");
public ClinicalRole? Role
{
get
{
var role = _http.HttpContext?.User.FindFirstValue("clinical_role");
return role is null ? null : ClinicalRoleExtensions.FromDbString(role);
}
}
public bool IsAuthenticated => _http.HttpContext?.User.Identity?.IsAuthenticated == true;
public string? IpAddress => _http.HttpContext?.Connection.RemoteIpAddress?.ToString();
}