diff --git a/src/contexts/PermissionContext.tsx b/src/contexts/PermissionContext.tsx
index 1e8ad959..5d89f3b4 100644
--- a/src/contexts/PermissionContext.tsx
+++ b/src/contexts/PermissionContext.tsx
@@ -25,9 +25,20 @@ export function PermissionProvider({ children }: { children: React.ReactNode })
}
/**
- * 자기 잠금(self-lockout) 방지: 권한 설정 페이지는 항상 접근 허용
+ * 화이트리스트 바이패스: 메뉴 권한 등록 없이도 항상 접근 허용하는 경로
+ *
+ * - 권한 설정 (자기 잠금 방지)
+ * - 대시보드 (모든 유저 필수 접근)
+ * - 시스템 페이지 (메뉴 등록 대상 아님)
*/
-const BYPASS_PATHS = ['/settings/permissions'];
+const BYPASS_PATHS = [
+ '/settings/permissions',
+ '/settings/account-info',
+ '/dashboard',
+ '/company-info',
+ '/subscription',
+ ...(process.env.NODE_ENV === 'development' ? ['/dev', '/test'] : []),
+];
function isGateBypassed(pathname: string): boolean {
const pathWithoutLocale = stripLocalePrefix(pathname);
@@ -52,11 +63,11 @@ export function PermissionGate({ children }: { children: React.ReactNode }) {
const matchedUrl = findMatchingUrl(pathname, permissionMap);
if (!matchedUrl) {
- return <>{children}>;
+ return ;
}
const perms = permissionMap[matchedUrl];
- const canView = perms?.view ?? true;
+ const canView = perms?.view ?? false;
if (!canView) {
return ;