증상
공개 프로필(/profile/[userId])의 Solutions 탭이 대상 유저가 아니라 로그인한 뷰어 본인의 solutions를 표시한다.
원인
packages/web/lib/components/profile/SolutionsList.tsx:30이 userId prop을 무시하고 getMySolutions({ page: 1, per_page: 24 })(self-scoped 'my solutions' 엔드포인트)를 호출. PublicProfileClient(app/[locale]/profile/[userId]/PublicProfileClient.tsx)가 <SolutionsList userId={userId} />로 렌더하지만 prop이 사용되지 않음.
영향
- 데이터 정합성 버그: 타 유저 공개 프로필 Solutions 탭에 뷰어 자신의 데이터가 잘못 표시됨.
- ⚠️ 단, 대상 유저의 비공개 데이터 노출은 아님(뷰어 본인 데이터가 뷰어에게만 보임).
발견 경위
Locale P2 Phase 1b Task 4(profile → app/[locale]/ 이동) 보안 리뷰 중 발견. 이 마이그레이션과 무관한 선재 버그(SolutionsList는 PR #730에서 미수정). 별도 추적용 등록.
수정 방향
SolutionsList가 userId로 대상 유저의 solutions를 조회하도록 변경, 또는 공개 프로필에서 Solutions 탭이 뷰어 데이터로 resolve되지 않도록 처리.
증상
공개 프로필(
/profile/[userId])의 Solutions 탭이 대상 유저가 아니라 로그인한 뷰어 본인의 solutions를 표시한다.원인
packages/web/lib/components/profile/SolutionsList.tsx:30이userIdprop을 무시하고getMySolutions({ page: 1, per_page: 24 })(self-scoped 'my solutions' 엔드포인트)를 호출.PublicProfileClient(app/[locale]/profile/[userId]/PublicProfileClient.tsx)가<SolutionsList userId={userId} />로 렌더하지만 prop이 사용되지 않음.영향
발견 경위
Locale P2 Phase 1b Task 4(profile → app/[locale]/ 이동) 보안 리뷰 중 발견. 이 마이그레이션과 무관한 선재 버그(SolutionsList는 PR #730에서 미수정). 별도 추적용 등록.
수정 방향
SolutionsList가userId로 대상 유저의 solutions를 조회하도록 변경, 또는 공개 프로필에서 Solutions 탭이 뷰어 데이터로 resolve되지 않도록 처리.