'use client'; import React from 'react'; import { Card } from 'primereact/card'; import { Button } from 'primereact/button'; import { useRouter } from 'next/navigation'; import { useUserRoles, PAGE_ROLES, PageRole } from '@/hooks/useUserRoles'; interface RoleProtectedPageProps { children: React.ReactNode; requiredPage: PageRole; fallbackMessage?: string; } const RoleProtectedPage: React.FC = ({ children, requiredPage, fallbackMessage }) => { const { canAccess, isLoading, roles } = useUserRoles(); const router = useRouter(); const requiredRoles = PAGE_ROLES[requiredPage]; if (isLoading) { return (

Vérification des autorisations...

); } if (!canAccess(requiredRoles)) { return (

Accès restreint

{fallbackMessage || `Vous n'avez pas les autorisations nécessaires pour accéder à cette page. Les rôles requis sont : ${requiredRoles.join(', ')}.`}

Vos rôles actuels : {roles.length > 0 ? roles.join(', ') : 'Aucun rôle assigné'}

); } return <>{children}; }; export default RoleProtectedPage;