fix: [auth] 권한 게이트 강화 — 바이패스 경로 추가 + 미등록 메뉴 접근 차단

This commit is contained in:
유병철
2026-03-20 15:00:26 +09:00
parent dd24f55734
commit c6297514fd

View File

@@ -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 <AccessDenied />;
}
const perms = permissionMap[matchedUrl];
const canView = perms?.view ?? true;
const canView = perms?.view ?? false;
if (!canView) {
return <AccessDenied />;