|
- using Campaign_Tracker.Server.Authorization;
-
- namespace Campaign_Tracker.Server.Authentication;
-
- public static class RoleWorkspaceResolver
- {
- private static readonly (string Role, string WorkspacePath)[] WorkspacePriority =
- [
- (ApplicationRole.Admin, "/workspace/admin"),
- (ApplicationRole.ClientServices, "/workspace/client-services"),
- (ApplicationRole.Production, "/workspace/production"),
- (ApplicationRole.Transportation, "/workspace/transportation"),
- (ApplicationRole.Support, "/workspace/support"),
- ];
-
- public static string ResolveWorkspacePath(IEnumerable<string> roles)
- {
- var normalizedRoles = ApplicationRole.NormalizeMany(roles);
- foreach (var (role, workspacePath) in WorkspacePriority)
- {
- if (normalizedRoles.Contains(role, StringComparer.OrdinalIgnoreCase))
- {
- return workspacePath;
- }
- }
-
- return "/workspace";
- }
- }
|