diff --git a/src/lib/role-access.ts b/src/lib/role-access.ts index 8dd8880..9ed47ad 100644 --- a/src/lib/role-access.ts +++ b/src/lib/role-access.ts @@ -32,13 +32,18 @@ const vicePrincipalViews: ViewName[] = [ 'analytics', 'disciplinary', 'school-transport', 'substitute-teacher', ]; +export function hasRoleAccess(role: string | undefined, allowedRoles: readonly AppRole[]): boolean { + return role === 'SCHOOL_ADMIN' || role === 'SUPER_ADMIN' || (role !== undefined && allowedRoles.includes(role as AppRole)); +} + export function canAccessView(role: string | undefined, view: ViewName): boolean { if (role === 'SCHOOL_ADMIN' || role === 'SUPER_ADMIN') return true; const allowed = role === 'PARENT' ? parentViews : role === 'STUDENT' ? studentViews + : role === 'TEACHER' ? teacherViews : role === 'VICE_PRINCIPAL' ? vicePrincipalViews : role === 'DPO' ? ['dashboard', 'settings', 'reports'] - : teacherViews; + : []; return allowed.includes(view); }