19 lines
481 B
TypeScript
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;
|
|
}
|
|
}
|