diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 3f48079..5d442d1 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -11,6 +11,8 @@ import ManageTask from "./pages/admin/ManageTask.jsx";
import AttendanceCode from "./pages/admin/AttendanceCode";
import Attendance from "./pages/generation/Attendance";
import AdminStudentAttendance from "./pages/admin/AdminStudentAttendance";
+import RequireAuth from "./components/RequireAuth";
+import RequireAdmin from "./components/RequireAdmin";
function App() {
return (
@@ -18,15 +20,78 @@ function App() {
} />
} />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
);
diff --git a/frontend/src/components/RequireAdmin.jsx b/frontend/src/components/RequireAdmin.jsx
new file mode 100644
index 0000000..becbb4d
--- /dev/null
+++ b/frontend/src/components/RequireAdmin.jsx
@@ -0,0 +1,12 @@
+import { Navigate } from "react-router-dom";
+
+const RequireAdmin = ({ children }) => {
+ const user = JSON.parse(localStorage.getItem("user"));
+
+ if (!user) return ;
+ if (user.role !== "ADMIN") return ;
+
+ return children;
+};
+
+export default RequireAdmin;
diff --git a/frontend/src/components/RequireAuth.jsx b/frontend/src/components/RequireAuth.jsx
new file mode 100644
index 0000000..8a61988
--- /dev/null
+++ b/frontend/src/components/RequireAuth.jsx
@@ -0,0 +1,13 @@
+import { Navigate } from "react-router-dom";
+
+const RequireAuth = ({ children }) => {
+ const user = JSON.parse(localStorage.getItem("user"));
+
+ if (!user) {
+ return ;
+ }
+
+ return children;
+};
+
+export default RequireAuth;