generated from pascalmartineau/wp-skeleton
All checks were successful
Deploy WordPress and Nuxt / deploy (push) Successful in 1m4s
19 lines
608 B
TypeScript
19 lines
608 B
TypeScript
export default defineNuxtRouteMiddleware((to) => {
|
|
const { isLoggedIn, hasRole } = useAuth();
|
|
if (!isLoggedIn.value) {
|
|
return navigateTo(`/connexion?redirect=${encodeURIComponent(to.fullPath)}`);
|
|
}
|
|
if (!to.meta.role) {
|
|
throw createError({ statusCode: 500, statusMessage: "Erreur serveur", message: "Le paramètre 'role' est requis (hasRole)." });
|
|
}
|
|
if (!hasRole(to.meta.role)) {
|
|
throw createError({ statusCode: 403, statusMessage: "Accès refusé", message: `Le rôle '${to.meta.role}' est requis.` });
|
|
}
|
|
});
|
|
|
|
declare module "#app" {
|
|
interface PageMeta {
|
|
role?: string;
|
|
}
|
|
}
|