diff --git a/DataSentinel/src/App.jsx b/DataSentinel/src/App.jsx index f11b569..24306f8 100644 --- a/DataSentinel/src/App.jsx +++ b/DataSentinel/src/App.jsx @@ -12,14 +12,22 @@ import Fournisseur from './pages/Fournisseur/Fournisseur'; import Historique from './pages/Historique/Historique'; import Admin from './pages/Admin/Admin'; import Users from './pages/Users/Users'; +import Journal from './pages/Journal/Journal'; import Documentation from './pages/Documentation/Documentation'; import MentionsLegales from './pages/MentionsLegales/MentionsLegales'; import CGU from './pages/CGU/CGU'; -/* Composant pour protéger les routes nécessitant une authentification */ -function ProtectedRoute({ children }) { +/* Composant pour protéger les routes nécessitant une authentification. + * requireRole (optionnel) : restreint l'accès à un rôle précis (ex. "Admin"). */ +function ProtectedRoute({ children, requireRole }) { const { user } = useAuth(); - return user ? children : ; + if (!user) { + return ; + } + if (requireRole && user.role !== requireRole) { + return ; + } + return children; } /* Composant pour les routes publiques (login) */ @@ -61,8 +69,30 @@ function App() { } /> } /> } /> - } /> - } /> + + + + } + /> + + + + } + /> + + + + } + /> } /> diff --git a/DataSentinel/src/components/Layout/Header.jsx b/DataSentinel/src/components/Layout/Header.jsx index 31a2449..3692e77 100644 --- a/DataSentinel/src/components/Layout/Header.jsx +++ b/DataSentinel/src/components/Layout/Header.jsx @@ -44,8 +44,8 @@ export default function Header({ onToggleSidebar, sidebarOpen }) {