using Microsoft.AspNetCore.Authorization; namespace ZB.MOM.WW.MxGateway.Server.Dashboard; /// /// Requirement satisfied when the user has any one of the listed roles, or /// when an environment-level bypass (auth disabled / loopback) is in effect. /// public sealed class DashboardAuthorizationRequirement(IReadOnlyList requiredRoles) : IAuthorizationRequirement { /// Gets the list of roles required to satisfy this requirement. public IReadOnlyList RequiredRoles { get; } = requiredRoles; /// Gets a requirement satisfied by any dashboard role (admin or viewer). public static DashboardAuthorizationRequirement AnyDashboardRole { get; } = new([DashboardRoles.Admin, DashboardRoles.Viewer]); /// Gets a requirement satisfied only by the admin role. public static DashboardAuthorizationRequirement AdminOnly { get; } = new([DashboardRoles.Admin]); }