UNPKG

@battle-racing/br-common-lib

Version:

Common library for all Battle Racing Repositorios

22 lines (16 loc) 827 B
import { USER_ROLE } from '../constants'; import { ROLE_DEFINITIONS } from '../data'; import { Permission, UserRole } from '../types'; 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)); }