Skip to content

Fix: Sembunyikan identitas pelapor dan NIK pada API komplain - #1779

Open
pandigresik wants to merge 1 commit into
rilis-devfrom
fix/komplain_anonim
Open

pandigresik wants to merge 1 commit into
rilis-devfrom
fix/komplain_anonim

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

fix: sembunyikan identitas pelapor dan NIK pada API komplain

Closes #1777

Ringkasan

Memperbaiki kebocoran data pribadi penduduk pada GET /api/frontend/v1/komplain (issue #1777). Sebelumnya flag anonim diabaikan, dan NIK, nama, serta detail penduduk lengkap dikembalikan tanpa autentikasi. Filter nik juga bisa dipakai untuk enumerasi.

Perubahan

KomplainTransformer

  • nik dihapus dari respons.
  • detail_penduduk selalu null.
  • nama disembunyikan (null) jika komplain anonim. Nilai anonim yang kosong juga dianggap anonim.
  • Include penduduk dihapus dari availableIncludes, karena membawa NIK dan profil penduduk.

JawabKomplainTransformer

  • nik dihapus dari respons jawaban.

KomplainApiRepository

  • Filter nik dihapus.
  • Include penduduk dihapus dari allowedIncludes.

Dampak ke API (perubahan kontrak)

  • Field nik tidak lagi ada pada respons komplain dan jawaban.
  • Field detail_penduduk selalu null.
  • include=penduduk tidak lagi tersedia.
  • filter[nik] tidak lagi diizinkan. Permintaan yang masih memakainya mendapat 400, karena disable_invalid_filter_query_exception = false.

Frontend publik di themes/opendk/buen sudah diperiksa dan tidak membaca nik/nama dari API, serta tidak memakai filter[nik] atau include=penduduk. Tracking komplain dicari di server lewat komplain_id.

Test

  • tests/Unit/Transformers/KomplainTransformerTest.php (baru): komplain anonim, tidak anonim, nilai anonim kosong, nik tidak ada, dan penduduk tidak tersedia sebagai include.
  • tests/Unit/Transformers/JawabKomplainTransformerTest.php (baru): nik tidak ada pada jawaban.
  • tests/Unit/Repositories/KomplainApiRepositoryTest.php (baru): filter nik dan include penduduk tidak ada.
  • tests/Feature/Api/Frontend/KomplainControllerTest.php: nik dihapus dari struktur respons yang diharapkan.

Test di atas lulus (17 test). Suite penuh belum dijalankan.

Screenshots

image

Catatan deploy

  • Bersihkan cache prefix komplain:api setelah deploy. Respons lama yang masih berisi NIK bisa tersaji sampai cache kedaluwarsa (default 3600 detik).
  • Frontend yang masih mengirim filter[nik] akan mendapat 400. Pastikan rilis frontend sudah siap.
  • Dokumentasi OpenAPI belum diregenerasi.

@github-actions

Copy link
Copy Markdown
Contributor

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1779

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant