@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
22 lines (16 loc) • 827 B
text/typescript
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));
}