From 9dc1fa396f2500f6df76fc58cf30dc01cb8cade8 Mon Sep 17 00:00:00 2001 From: koreahghg Date: Mon, 29 Dec 2025 14:46:10 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20ProtectedRoute=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=97=AD=ED=95=A0=20=ED=99=95=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0=20=EB=B0=8F=20=EC=BD=94=EB=93=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/components/ProtectedRoute.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/assets/components/ProtectedRoute.tsx b/src/assets/components/ProtectedRoute.tsx index 13d6d56..af3117c 100644 --- a/src/assets/components/ProtectedRoute.tsx +++ b/src/assets/components/ProtectedRoute.tsx @@ -23,14 +23,20 @@ export default function ProtectedRoute({ const userRoles: string[] = Array.isArray(user?.role) ? (user?.role as string[]) : user?.role - ? [user.role as string] - : []; + ? [user.role as string] + : []; - const required = Array.isArray(requiredRole) - ? requiredRole - : [requiredRole]; + const required = Array.isArray(requiredRole) ? requiredRole : [requiredRole]; + + const normalize = (r: string) => r.replace(/^ROLE_/i, '').toUpperCase(); + + const normalizedUserRoles = userRoles.map((r) => normalize(r)); + const normalizedRequired = required.map((r) => normalize(r)); + + const hasRole = normalizedRequired.some((req) => + normalizedUserRoles.includes(req) + ); - const hasRole = required.some((r) => userRoles.includes(r)); if (!hasRole) { return ; } From 375e273d12f260cb9b6e2537fc838b2349f5da94 Mon Sep 17 00:00:00 2001 From: koreahghg Date: Mon, 29 Dec 2025 14:47:36 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20ProtectedRoute=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A0=AC=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/components/ProtectedRoute.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/assets/components/ProtectedRoute.tsx b/src/assets/components/ProtectedRoute.tsx index af3117c..4537aae 100644 --- a/src/assets/components/ProtectedRoute.tsx +++ b/src/assets/components/ProtectedRoute.tsx @@ -23,10 +23,12 @@ export default function ProtectedRoute({ const userRoles: string[] = Array.isArray(user?.role) ? (user?.role as string[]) : user?.role - ? [user.role as string] - : []; + ? [user.role as string] + : []; - const required = Array.isArray(requiredRole) ? requiredRole : [requiredRole]; + const required = Array.isArray(requiredRole) + ? requiredRole + : [requiredRole]; const normalize = (r: string) => r.replace(/^ROLE_/i, '').toUpperCase();