From a152ef70b4058b1c7cd5500b14b9326d44d03030 Mon Sep 17 00:00:00 2001 From: qkrxogmla Date: Tue, 20 May 2025 02:51:08 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=9B=84=20?= =?UTF-8?q?=EC=A0=91=EA=B7=BC=EA=B0=80=EB=8A=A5=ED=95=98=EA=B2=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.jsx | 83 +++++++++++++++++++++--- frontend/src/components/RequireAdmin.jsx | 12 ++++ frontend/src/components/RequireAuth.jsx | 13 ++++ 3 files changed, 99 insertions(+), 9 deletions(-) create mode 100644 frontend/src/components/RequireAdmin.jsx create mode 100644 frontend/src/components/RequireAuth.jsx 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;