RBAC

Next RBAC 전달 경로

사용자 역할은 로그인 결과에 붙는 데이터이며 화면 노출과 라우트 접근 모두에서 같은 기준으로 읽어야 합니다.

권한 값

role 저장 위치 통일

admin, user 같은 역할 값을 세션, 토큰, DB 모델에서 같은 의미로 유지해 판정 기준을 맞춥니다.

렌더 전 판정

서버 컴포넌트 접근 분기

페이지 렌더링 전에 role을 읽어 관리자 콘텐츠를 반환할지 리다이렉트할지 결정합니다.

경로 차단

middleware 보호 규칙

/admin 같은 경로를 matcher로 묶고 세션이 없거나 권한이 낮으면 초기에 돌려보냅니다.

보조 표시

조건부 UI 한계 구분

버튼 숨김은 화면 편의일 뿐이므로 서버 권한 확인과 API 검증을 별도로 둡니다.

role 전파

세션 콜백에서 역할 값을 분명히 실어야 합니다

데이터베이스의 role이 session.user로 전달되지 않으면 서버와 클라이언트의 판단이 어긋납니다.

권한 판단 연결

서버 컴포넌트권한이 부족하면 관리자 데이터 요청 자체를 만들지 않고 redirect나 notFound로 끝냅니다.
middleware/admin, /dashboard/settings처럼 공통 정책이 필요한 경로만 보호 범위에 넣습니다.
조건부 UI버튼 숨김은 사용자 경험 보조이고 실제 변경 API는 role과 소유권을 다시 확인합니다.