Files

37 lines
1.9 KiB
PHP

<?php
require_once __DIR__ . '/auth.php';
require_login(true);
require_post();
require_role(['super_admin','admin_rumah_ibadah'], true);
$id = (int) post('id', 0);
$alasan = clean_text(post('alasan_hapus', post('alasan', '')), 1000);
$rumah = get_rumah_ibadah_by_id($id);
if (!$rumah) json_response('err', 'Rumah ibadah tidak ditemukan.', [], 404);
if ($_SESSION['role'] === 'super_admin') {
// Super admin langsung menghapus marker rumah ibadah dari peta.
// Data dibuat tidak aktif, bukan dihapus permanen, supaya riwayat tetap aman.
$status = 'ditolak';
$hapus = 'disetujui';
$catatan = $alasan ?: 'Marker rumah ibadah dihapus oleh super admin.';
$stmt = $koneksi->prepare("UPDATE rumah_ibadah SET status_pengajuan=?, status_hapus=?, alasan_hapus=?, keterangan=? WHERE id=?");
$stmt->bind_param('ssssi', $status, $hapus, $catatan, $catatan, $id);
if (!$stmt->execute()) json_response('err', 'Gagal menghapus marker rumah ibadah: ' . $koneksi->error);
$jumlahLepas = detach_penerima_from_rumah_ibadah($id);
$row = get_rumah_ibadah_by_id($id);
$row['jumlah_penerima_dilepas'] = $jumlahLepas;
json_response('ok', 'Marker rumah ibadah berhasil dihapus oleh super admin.', $row);
}
// Admin rumah ibadah hanya boleh mengajukan hapus untuk rumah ibadah miliknya.
if ((int)$rumah['user_id'] !== (int)$_SESSION['user_id']) json_response('err', 'Akses ditolak. Admin hanya boleh mengajukan hapus rumah ibadah miliknya.', [], 403);
if ($alasan === '') json_response('err', 'Alasan penghapusan wajib diisi.');
$statusHapus = 'menunggu';
$stmt = $koneksi->prepare("UPDATE rumah_ibadah SET status_hapus=?, alasan_hapus=? WHERE id=?");
$stmt->bind_param('ssi', $statusHapus, $alasan, $id);
if (!$stmt->execute()) json_response('err', 'Gagal mengajukan penghapusan rumah ibadah: ' . $koneksi->error);
json_response('ok', 'Pengajuan hapus marker rumah ibadah dikirim. Menunggu persetujuan super admin.', get_rumah_ibadah_by_id($id));
?>