Files
AdPlatform-Server/Management/Security/ClientContext.cs
2026-03-14 13:50:09 -07:00

33 lines
1.2 KiB
C#

namespace Management.Security;
/// <summary>
/// Request-scoped authentication context.
/// Populated by ClientAuthMiddleware.
/// </summary>
public sealed class ClientContext
{
public string? SessionId { get; set; }
public string? ClientId { get; set; }
public string? PlatformClientId { get; set; }
public string? ClientName { get; set; }
public string? UserId { get; set; }
public string? Email { get; set; }
public string? Role { get; set; }
public bool IsDevBypass { get; set; }
public bool IsAuthenticated => !string.IsNullOrWhiteSpace(ClientId);
/// <summary>Full platform access.</summary>
/// <summary>Full admin access — SuperAdmin or Admin role.</summary>
public bool IsAdmin =>
string.Equals(Role, "SuperAdmin", StringComparison.OrdinalIgnoreCase) ||
string.Equals(Role, "Admin", StringComparison.OrdinalIgnoreCase);
/// <summary>Health monitoring and Tech Client access only.</summary>
public bool IsTech =>
string.Equals(Role, "Tech", StringComparison.OrdinalIgnoreCase);
/// <summary>Any authenticated staff member (SuperAdmin, Admin or Tech).</summary>
public bool IsStaff => IsAdmin || IsTech;
}