UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

21 lines (15 loc) 798 B
import { ROLE_DEFINITIONS } from '../data'; import { Permission, USER_ROLE, UserRole } from '../domains'; export function hasPermission(userRole: UserRole, requiredPermission: Permission): boolean { if (userRole === USER_ROLE.SUPER_ADMIN) { return true; } const roleDefinition = ROLE_DEFINITIONS.find((def) => def.role === userRole); return roleDefinition ? roleDefinition.permissions.includes(requiredPermission) : false; } export function hasAnyPermission(userRole: UserRole, requiredPermissions: Permission[]): boolean { return requiredPermissions.some((perm) => hasPermission(userRole, perm)); } export function hasAllPermissions(userRole: UserRole, requiredPermissions: Permission[]): boolean { return requiredPermissions.every((perm) => hasPermission(userRole, perm)); }