fix/build-aset-erp #4

Merged
dimas merged 3 commits from fix/build-aset-erp into main 2026-10-26 20:20:49 +07:00
Owner
No description provided.
Di production unggahan JPG yang sah ditolak "tidak dapat dibaca", padahal
di lokal berhasil: GD server terpasang tanpa dukungan JPEG, sedangkan
validasi image/dimensions Laravel tetap lolos karena tidak memakai GD.

- Peramban memotong header ke tepat 1000×200 dan foto profil ke 256×256
  JPEG sebelum dikirim; pratinjau menampilkan potongan yang dikirim.
- Server menyimpan gambar yang ukurannya sudah pas apa adanya, tanpa GD.
- GdSupport memeriksa kemampuan GD sebelum membuka gambar: tidak ada lagi
  galat 500 karena imagecreatefromjpeg() tidak tersedia; pesan jelas bagi
  pengguna dan ringkasan gd_info() di log bagi TI.
- Foto profil PNG/WEBP disajikan dengan Content-Type yang sesuai.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PHP 8.5.12 — tambalan PHP2Shell (CVE-2026-109618/109619, RCE kritis)
- deploy/setup.sh menolak PHP di bawah 8.5.12; CI memakai PHP 8.5.
- DEPLOYMENT.md: paket php8.5 (PPA ondrej/php), socket FPM 8.5, dan
  Section 9.1 langkah upgrade server yang sudah berjalan.
- imagedestroy() (deprecated di 8.5, tanpa efek sejak 8.0) diganti unset().

HSE — Safety Observation Card
- Form publik /soc tanpa login (portal/soc.html), dua bahasa, foto
  dikecilkan di peramban; dijaga PublicGuard:soc + throttle, mati secara
  bawaan (VMERP_SOC_PORTAL_ENABLED).
- HSE > Form SOC: penyusun pertanyaan (12 jenis isian, pilihan + "Lainnya",
  skala, foto, tanggal mendatang), tautan, QR, poster cetak.
- HSE > Safety Observation: daftar, detail, tinjauan status & catatan HSE,
  export satu kolom per pertanyaan. Jawaban menyalin teks pertanyaannya.
- SocQuestionSeeder: pertanyaan awal dari kartu SOC HSE VME (docs/hse soc.docx),
  hanya mengisi Form SOC yang masih kosong.
- Tabel daftar CRUD tidak lagi memasang tombol Edit tanpa route edit.

Dokumentasi (/dokumentasi, semua user yang login)
- General Flowchart: swimlane per department (generator docs/flowchart),
  tema terang/gelap, tampilan besar layar penuh dengan zoom & geser.
- Video Alur Kerja (39 dtk) dengan daftar bab; media disajikan route docs.media.
- PRD dirender dari docs/PRD.md: daftar isi, tabel, diagram mermaid (lazy).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- chillerlan/php-qrcode 5.0.0 → 5.0.5: versi lama memanggil imagedestroy()
  di dalam try-nya sendiri, sehingga deprecation PHP 8.5 menjadi
  QRCodeOutputException — cetak ITR, Punch List, PR, PO, dan Preservation
  gagal 500. Constraint "5.0" (persis) diganti "^5.0.5".
- symfony/http-foundation 7.4.18 → 7.4.21: CVE-2026-108082, ReDoS lewat
  header Cache-Control yang dapat dipicu request apa pun.
- league/commonmark 2.10.0 → 2.10.4: DoS kuadratik di tabel GFM dan bypass
  DisallowedRawHtml (dipakai halaman Dokumentasi › PRD).

composer audit: tidak ada advisory tersisa.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dimas merged commit 9f41ea7de2 into main 2026-10-26 20:20:49 +07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dimas/vmerp!4
No description provided.