diff --git a/poverty-mapping/src/api/admin/approve_user.php b/poverty-mapping/src/api/admin/approve_user.php index 4c61db4..a484476 100644 --- a/poverty-mapping/src/api/admin/approve_user.php +++ b/poverty-mapping/src/api/admin/approve_user.php @@ -1,6 +1,7 @@ false,'error'=>'missing_id']); exit; } +// 1. Fetch user email and name first +$email = null; +$name = null; +$uStmt = $conn->prepare("SELECT email, name FROM users WHERE id = ?"); +if($uStmt){ + $uStmt->bind_param('i', $id); + $uStmt->execute(); + $uRes = $uStmt->get_result(); + $uRow = $uRes ? $uRes->fetch_assoc() : null; + if($uRow){ + $email = $uRow['email']; + $name = $uRow['name']; + } + $uStmt->close(); +} + +// 2. Perform the update $st = $conn->prepare('UPDATE users SET status = "active", approved_by = ?, approved_at = NOW() WHERE id = ?'); if(!$st){ http_response_code(500); echo json_encode(['success'=>false,'error'=>$conn->error]); exit; } $adminId = intval(get_current_user_info()['id']); @@ -17,5 +35,19 @@ $res = $st->execute(); $st->close(); if(!$res){ http_response_code(500); echo json_encode(['success'=>false,'error'=>$conn->error]); exit; } +// 3. Send email notification if user has email +if($email){ + try { + $subject = 'Akun Pengelola Telah Aktif - WebGIS'; + $message = "Halo " . ($name ? $name : 'Pengelola') . ",\n\n" . + "Akun pengelola Anda pada sistem WebGIS Poverty Mapping telah disetujui dan diaktifkan oleh administrator.\n\n" . + "Silakan login menggunakan email dan password yang telah Anda daftarkan.\n\n" . + "Terima kasih."; + send_mail_notify($email, $subject, $message, false); + } catch (Exception $e) { + error_log("Failed to send approval email: " . $e->getMessage()); + } +} + echo json_encode(['success'=>true]); ?> diff --git a/poverty-mapping/src/api/auth/approve_manager.php b/poverty-mapping/src/api/auth/approve_manager.php index e59f438..314150e 100644 --- a/poverty-mapping/src/api/auth/approve_manager.php +++ b/poverty-mapping/src/api/auth/approve_manager.php @@ -1,6 +1,7 @@ false,'error'=>'missing_id']); exit; } $id = intval($data['id']); +// Fetch user email and name first +$email = null; +$name = null; +$uStmt = $conn->prepare("SELECT email, name FROM users WHERE id = ?"); +if($uStmt){ + $uStmt->bind_param('i', $id); + $uStmt->execute(); + $uRes = $uStmt->get_result(); + $uRow = $uRes ? $uRes->fetch_assoc() : null; + if($uRow){ + $email = $uRow['email']; + $name = $uRow['name']; + } + $uStmt->close(); +} + $st = $conn->prepare('UPDATE users SET status = ?, approved_by = ?, approved_at = NOW() WHERE id = ? AND role = "manager"'); if(!$st){ http_response_code(500); echo json_encode(['success'=>false,'error'=>$conn->error]); exit; } $status = 'active'; $adminId = intval($admin['id']); $st->bind_param('sii', $status, $adminId, $id); $res = $st->execute(); $st->close(); if(!$res){ http_response_code(500); echo json_encode(['success'=>false,'error'=>$conn->error]); exit; } -// optional: send notification email +if($email){ + try { + $subject = 'Akun Pengelola Telah Aktif - WebGIS'; + $message = "Halo " . ($name ? $name : 'Pengelola') . ",\n\n" . + "Akun pengelola Anda pada sistem WebGIS Poverty Mapping telah disetujui dan diaktifkan oleh administrator.\n\n" . + "Silakan login menggunakan email dan password yang telah Anda daftarkan.\n\n" . + "Terima kasih."; + send_mail_notify($email, $subject, $message, false); + } catch (Exception $e) { + error_log("Failed to send approval email: " . $e->getMessage()); + } +} + echo json_encode(['success'=>true]); ?> \ No newline at end of file