getIDby customer

This commit is contained in:
Ibnu Maksum 2024-08-06 09:14:36 +07:00
parent ce47ee1533
commit 271dd2934a
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5

View File

@ -32,10 +32,7 @@ class MikrotikPppoe
global $isChangePlan; global $isChangePlan;
$mikrotik = $this->info($plan['routers']); $mikrotik = $this->info($plan['routers']);
$client = $this->getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); $client = $this->getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
//check if customer exists $cid = self::getIdByCustomer($customer, $client);
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setQuery(RouterOS\Query::where('name', $customer['username']));
$cid = $client->sendSync($printRequest)->getProperty('.id');
if (empty($cid)) { if (empty($cid)) {
//customer not exists, add it //customer not exists, add it
$this->addPpoeUser($client, $plan, $customer); $this->addPpoeUser($client, $plan, $customer);
@ -65,6 +62,7 @@ class MikrotikPppoe
} }
} }
function remove_customer($customer, $plan) function remove_customer($customer, $plan)
{ {
$mikrotik = $this->info($plan['routers']); $mikrotik = $this->info($plan['routers']);
@ -130,6 +128,23 @@ class MikrotikPppoe
); );
} }
/**
* Function to ID by username from Mikrotik
*/
function getIdByCustomer($customer, $client){
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setQuery(RouterOS\Query::where('name', $customer['username']));
$id = $client->sendSync($printRequest)->getProperty('.id');
if(empty($id)){
if (!empty($customer['pppoe_username'])) {
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setQuery(RouterOS\Query::where('name', $customer['pppoe_username']));
$id = $client->sendSync($printRequest)->getProperty('.id');
}
}
return $id;
}
function update_plan($old_name, $new_plan) function update_plan($old_name, $new_plan)
{ {
$mikrotik = $this->info($new_plan['routers']); $mikrotik = $this->info($new_plan['routers']);
@ -312,36 +327,6 @@ class MikrotikPppoe
$client->sendSync($setRequest); $client->sendSync($setRequest);
} }
function setPpoeUser($client, $user, $pass)
{
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setArgument('.proplist', '.id');
$printRequest->setQuery(RouterOS\Query::where('name', $user));
$id = $client->sendSync($printRequest)->getProperty('.id');
$setRequest = new RouterOS\Request('/ppp/secret/set');
$setRequest->setArgument('numbers', $id);
$setRequest->setArgument('password', $pass);
$client->sendSync($setRequest);
}
function setPpoeUserPlan($client, $user, $plan)
{
global $_app_stage;
if ($_app_stage == 'demo') {
return null;
}
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setArgument('.proplist', '.id');
$printRequest->setQuery(RouterOS\Query::where('name', $user));
$id = $client->sendSync($printRequest)->getProperty('.id');
$setRequest = new RouterOS\Request('/ppp/secret/set');
$setRequest->setArgument('numbers', $id);
$setRequest->setArgument('profile', $plan);
$client->sendSync($setRequest);
}
function removePpoeActive($client, $username) function removePpoeActive($client, $username)
{ {
global $_app_stage; global $_app_stage;