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 ;