namespace Backend.Security; public static class AdminRoles { public const string Viewer = "viewer"; public const string ContentAdmin = "content_admin"; public const string Admin = "admin"; public const string Owner = "owner"; public static string Normalize(string? role) { var normalizedRole = (role ?? string.Empty).Trim().ToLowerInvariant().Replace('-', '_'); return normalizedRole switch { Owner => Owner, Admin => Admin, ContentAdmin => ContentAdmin, _ => Viewer, }; } public static bool IsKnownRole(string? role) { var normalizedRole = (role ?? string.Empty).Trim().ToLowerInvariant().Replace('-', '_'); return normalizedRole is Viewer or ContentAdmin or Admin or Owner; } public static bool CanAccessAdmin(string? role) => Normalize(role) is ContentAdmin or Admin or Owner; public static bool CanManageContent(string? role) => Normalize(role) is ContentAdmin or Admin or Owner; public static bool CanManageAdminWorkspace(string? role) => Normalize(role) is Admin or Owner; public static bool CanManageOperationalSettings(string? role) => Normalize(role) is Owner; }