요청 주체 확정
쿠키나 JWT에서 userId를 복원하고 만료, 탈퇴, 잠금 계정은 즉시 401로 끊습니다.
메뉴를 숨기는 것과 요청을 차단하는 것은 다릅니다. 페이지, API, DB 조건이 같은 권한 모델을 바라봐야 합니다.
쿠키나 JWT에서 userId를 복원하고 만료, 탈퇴, 잠금 계정은 즉시 401로 끊습니다.
admin role만 믿지 말고 organizationId, resource owner, membership 상태를 함께 봅니다.
Server Component, Server Action, Route Handler마다 requirePermission을 통과시킵니다.
미로그인은 redirect/401, 권한 없음은 403, 숨겨야 할 리소스는 404로 분기합니다.
점검 게이트: 클라이언트 메뉴 숨김은 보조이며, API route와 DB where 조건에서 tenantId, ownerId, permission을 다시 검증해야 합니다.