29 lines
891 B
TypeScript
29 lines
891 B
TypeScript
export type RoleLane = 'super_admin' | 'admin' | 'concierge' | 'customer';
|
|
|
|
export const ROLE_LANES = {
|
|
superAdmin: new Set(['Super Administrator']),
|
|
admin: new Set(['Administrator', 'Platform Owner', 'Operations Director', 'Reservations Lead', 'Finance Controller']),
|
|
concierge: new Set(['Concierge Coordinator']),
|
|
customer: new Set(['Customer']),
|
|
};
|
|
|
|
export function getRoleLane(roleName?: string | null, hasGlobalAccess = false): RoleLane {
|
|
if (hasGlobalAccess || (roleName && ROLE_LANES.superAdmin.has(roleName))) {
|
|
return 'super_admin';
|
|
}
|
|
|
|
if (roleName && ROLE_LANES.admin.has(roleName)) {
|
|
return 'admin';
|
|
}
|
|
|
|
if (roleName && ROLE_LANES.customer.has(roleName)) {
|
|
return 'customer';
|
|
}
|
|
|
|
return 'concierge';
|
|
}
|
|
|
|
export function getRoleLaneFromUser(user?: any): RoleLane {
|
|
return getRoleLane(user?.app_role?.name, Boolean(user?.app_role?.globalAccess));
|
|
}
|