feat(gdpr): 쿠키 거부 기능 + 마이페이지 동의 관리 토글 재설계

STEP 1~7 (거부 기능):
- 쿠키 배너에 「동의하지 않고 계속하기」 거부 버튼 추가 (intent=reject)
- is_rejected/rejected_at 컬럼 + ConsentAction Enum 3분기 (동의/철회/거부)
- 관리자 동의 이력에 [거부] 필터 + amber 배지

STEP A~F (토글 재설계):
- 필수 카테고리를 동의 축에서 완전 제외 (status/history 미저장) — ePrivacy Art.5(3) 면제
- 마이페이지 표→토글 전환: 필수=「항상 켜짐」 잠금, 선택=on/off 스위치, 동의일 제거, 「모두 켜기」 바
- 거부 토스트 문구 정정: consent.granted → rejected_saved (배너 + 컨트롤러 응답)

테스트: 백엔드 201/201, 프론트 288/288, 시나리오 커버리지 audit 통과
Chrome MCP 실측: 토글 grant/revoke/모두켜기 + 배너 거부 토스트 + 거부 직후 마이페이지 표기 확인
This commit is contained in:
chym1217 committed 2026-07-27 15:58:28 +09:00
1 parent 0dc174f2dc
commit ef13a1ddff
30 files changed
+1287 -249

No files matched your search

@@ -64,9 +64,11 @@ class GdprUserConsentRepository implements GdprUserConsentRepositoryInterface
$row->consent_key = $consentKey;
$row->consent_category = $consentCategory;
$row->is_consented = false;
$row->is_rejected = false;
$row->consent_count = 0;
$row->consented_at = null;
$row->revoked_at = null;
$row->rejected_at = null;
$row->policy_version = null;
$row->last_source = null;