Files
isop-mirror/frontend/app/middleware/studentOnly.ts

16 lines
437 B
TypeScript

import { Role } from "~/types/role";
import type { User } from "~/types/user";
export default defineNuxtRouteMiddleware(async (to) => {
const user = useSanctumUser<User>();
// If user is not authenticated, let sanctum:auth handle it
if (!user.value) {
return;
}
if (user.value.role !== Role.STUDENT) {
return abortNavigation(createError({ statusCode: 403, statusMessage: 'Forbidden' }));
}
});