Files
gridpilot.gg/adapters/bootstrap/RoleHierarchy.ts
2025-12-26 00:20:53 +01:00

28 lines
678 B
TypeScript

/**
* Role Hierarchy Configuration
*
* Business logic configuration for league role ordering and permissions
*/
export type LeagueMembershipRole = 'owner' | 'admin' | 'steward' | 'member';
export const roleOrder: Record<LeagueMembershipRole, number> = {
owner: 0,
admin: 1,
steward: 2,
member: 3,
};
export const getRoleOrder = (role: LeagueMembershipRole): number => {
return roleOrder[role] ?? 99;
};
export const isLeagueAdminOrHigherRole = (role: LeagueMembershipRole): boolean => {
return role === 'owner' || role === 'admin' || role === 'steward';
};
export const roleHierarchy = {
roleOrder,
getRoleOrder,
isLeagueAdminOrHigherRole,
} as const;