Files
headless-2026-03/wp-content/themes/headless/app/middleware/hasRole.ts

19 lines
481 B
TypeScript

export default defineNuxtRouteMiddleware((to) => {
const { hasRole, isLoggedIn } = useAuth();
if (!isLoggedIn.value) {
return navigateTo({ path: "/connexion", query: { redirect: to.fullPath } });
}
if (!hasRole(to.meta.hasRole || "")) {
return abortNavigation({
statusCode: 403,
message: "Vous n'avez pas les permissions requises pour accéder à cette page.",
});
}
});
declare module "#app" {
interface PageMeta {
hasRole?: string;
}
}