55 lines
2.7 KiB
JavaScript
55 lines
2.7 KiB
JavaScript
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
|
|
import { AuthProvider } from "./AuthContext.jsx";
|
|
import Home from "./pages/Home.jsx";
|
|
import About from "./pages/About.jsx";
|
|
import Gestion from "./pages/Gestion/Gestion.jsx";
|
|
import Header from "./components/Header.jsx";
|
|
import ObjectManagement from "./pages/Gestion/ObjectManagement.jsx";
|
|
import Objet from "./pages/Gestion/Objet.jsx";
|
|
import AddObject from "./pages/Gestion/AddObject.jsx";
|
|
import Signup from "./pages/Signup.jsx";
|
|
import Login from "./pages/Login.jsx";
|
|
import Profil from "./pages/Profil.jsx";
|
|
import Sidebar from "./pages/Admin/sidebar.jsx";
|
|
import User from "./pages/Admin/User.jsx";
|
|
import Dashboard from "./pages/Admin/Dashboard.jsx";
|
|
import AdminObjet from "./pages/Admin/AdminObjet.jsx";
|
|
import ProtectedRoute from "./ProtectedRoute.jsx";
|
|
|
|
function App() {
|
|
return (
|
|
<AuthProvider>
|
|
<Router>
|
|
<div>
|
|
<Header />
|
|
<Routes>
|
|
{/* Routes publiques */}
|
|
<Route path="/" element={<Home />} />
|
|
<Route path="/about" element={<About />} />
|
|
<Route path="/signup" element={<Signup />} />
|
|
<Route path="/login" element={<Login />} />
|
|
|
|
{/* Routes protégées pour tous les utilisateurs connectés */}
|
|
<Route path="/gestion" element={<ProtectedRoute element={<Gestion />} allowedRoles={['admin', 'complexe', 'user']} />} />
|
|
<Route path="/gestionObjets" element={<ProtectedRoute element={<ObjectManagement />} allowedRoles={['admin', 'complexe', 'user']} />} />
|
|
<Route path="/objet" element={<ProtectedRoute element={<Objet />} allowedRoles={['admin', 'complexe', 'user']} />} />
|
|
|
|
{/* Routes protégées pour les admins et complexes */}
|
|
<Route path="/ajouterObjet" element={<ProtectedRoute element={<AddObject />} allowedRoles={['admin', 'complexe']} />} />
|
|
<Route path="/profil" element={<ProtectedRoute element={<Profil />} allowedRoles={['admin', 'complexe','user']} />} />
|
|
|
|
{/* Routes protégées pour tous les utilisateurs connectés */}
|
|
<Route path="/sidebar" element={<ProtectedRoute element={<Sidebar />} allowedRoles={['admin', 'complexe', 'user']} />} />
|
|
<Route path="/user" element={<ProtectedRoute element={<User />} allowedRoles={['admin', 'complexe', 'user']} />} />
|
|
{/* Routes protégées pour les admins uniquement */}
|
|
<Route path="/dashboard" element={<ProtectedRoute element={<Dashboard />} allowedRoles={['admin']} />} />
|
|
<Route path="/adminobjet" element={<ProtectedRoute element={<AdminObjet />} allowedRoles={['admin']} />} />
|
|
</Routes>
|
|
</div>
|
|
</Router>
|
|
</AuthProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|