37 lines
1.9 KiB
PHP
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));
|
|
?>
|