addTunnel($_POST['nmk'] . '_' . $_POST['ids']);
$radius_nas_data = $resultTun;
$decodedResult = json_decode($resultTun);
$nasname = $decodedResult->data->{"remote-address"} ?? null;
$shortname = strtok($decodedResult->data->{"name"}, '@');
$nassecret = $decodedResult->data->{"nas_secret"} ?? null;
$nasgroup = "server" . $SvId;
// Tambahkan NAS ke Radius jika diminta
if ($decodedResult->{'status'} == true && !empty($_POST['radius'])) {
$radius = new CrudRadiusServer();
$radius->request('add_nas', 'POST', [
'nasname' => $nasname,
'shortname' => $shortname,
'secret' => $nassecret,
'nasnamegroup' => $nasgroup
]);
$status_radius = 1 ;
} else {
$status_radius = 0 ;
}
$address = "tunnel.manjapro.net";
$portApi = $decodedResult->data->{"port-api"} ?? null;
$portRm = $decodedResult->data->{"port-remote"} ?? null;
}
// Jika data tunnel radius ada tapi tunnel & radius mau dihapus
elseif (!empty($server['radius_nas_data']) && empty($_POST['tunnel'])) {
$nasnameip = json_decode($server['radius_nas_data']);
$nasipname = $nasnameip->data->{'remote-address'};
$radius = new CrudRadiusServer();
$radius->request('delete_nas', 'DELETE', [
'nasname' => $nasipname
]);
$dtunnel = new CreateTunnel();
$dresultTun = $dtunnel->deleteTunnel($server['radius_nas_data']);
// hapus data tunnel di db setting mikrotik
$radius_nas_data = "";
$status_radius = 0 ;
$address = $_POST['ipa'];
$portApi = $_POST['pam'];
$portRm = $_POST['prm'];
}
// Jika tetap pakai tunnel tapi radius dinonaktifkan
elseif (!empty($server['radius_nas_data']) && empty($_POST['radius'])) {
$nasnameip = json_decode($server['radius_nas_data']);
$nasipname = $nasnameip->data->{'remote-address'};
$radius = new CrudRadiusServer();
$radius->request('delete_nas', 'DELETE', [
'nasname' => $nasipname
]);
$radius_nas_data = $server['radius_nas_data'];
$status_radius = 0 ;
$address = "tunnel.manjapro.net";
$portApi = $nasnameip->data->{"port-api"};
$portRm = $nasnameip->data->{"port-remote"};
}
// Jika sudah ada tunnel lalu mau pakai radius
elseif (!empty($server['radius_nas_data']) && $_POST['radius'] == 1) {
$decodedResult = json_decode($server['radius_nas_data']);
$nasname = $decodedResult->data->{"remote-address"} ?? null;
$shortname = strtok($decodedResult->data->{"name"}, '@');
$nassecret = $decodedResult->data->{"nas_secret"} ?? null;
$nasgroup = "server" . $SvId;
$radius = new CrudRadiusServer();
$radius->request('add_nas', 'POST', [
'nasname' => $nasname,
'shortname' => $shortname,
'secret' => $nassecret,
'nasnamegroup' => $nasgroup
]);
$radius_nas_data = $server['radius_nas_data'];
$status_radius = 1 ;
$address = "tunnel.manjapro.net";
$portApi = $decodedResult->data->{"port-api"};
$portRm = $decodedResult->data->{"port-remote"};
}
// Jika tidak menggunakan tunnel dan radius
else {
$radius_nas_data = "";
$status_radius = "";
$address = $_POST['ipa'];
$portApi = $_POST['pam'];
$portRm = $_POST['prm'];
}
// Misalkan $pdo adalah koneksi PDO yang sudah dibuat sebelumnya
$stmt = $pdo->prepare("UPDATE setting_mikrotik SET
id_data_server = :id_data_server,
nama = :nama,
ip_address = :ip_address,
port_api = :port_api,
port_remote = :port_remote,
username = :username,
password = :password,
profile_remote = :profile_remote,
radius_nas_data = :radius_nas_data,
status_radius = :status_radius
WHERE id = :id");
// Mengikat parameter
$stmt->bindParam(':id_data_server', $_POST['ids']);
$stmt->bindParam(':nama', $_POST['nmk']);
$stmt->bindParam(':ip_address', $address);
$stmt->bindParam(':port_api', $portApi);
$stmt->bindParam(':port_remote', $portRm);
$stmt->bindParam(':username', $_POST['usm']);
$stmt->bindParam(':password', $_POST['psw']);
$stmt->bindParam(':profile_remote', $_POST['profile_remote']);
$stmt->bindParam(':radius_nas_data', $radius_nas_data);
$stmt->bindParam(':status_radius', $status_radius);
$stmt->bindParam(':id', $server['id']); // ID dari server yang ingin diupdate
// Eksekusi statement
if ($stmt->execute()) {
// Membuat Tunnel Radius
sweetAlert("Data telah diubah", "success");
}
} catch (PDOException $e) {
// Menangani kesalahan
// sweetAlert("Error: " . $e->getMessage(), "error");
echo $e->getMessage();
}
}
// Hapus data Mikrotik
if (isset($_POST['hapus'.$server['id']]))
{
$dtunnel = new CreateTunnel();
$dresultTun = $dtunnel->deleteTunnel($server['radius_nas_data']);
$nasnameip = json_decode($server['radius_nas_data']);
$nasipname = $nasnameip->data->{'remote-address'};
$radius = new CrudRadiusServer();
$radius->request('delete_nas', 'DELETE', [
'nasname' => $nasipname
]);
$iddata = $server['id'];
deleteAlert("setting_mikrotik",$iddata );
}
?>