Set expired plan

This commit is contained in:
Ibnu Maksum 2023-09-05 17:06:43 +07:00
parent 5c9a0d8ea6
commit b912dd05d0
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
2 changed files with 75 additions and 31 deletions

View File

@ -17,7 +17,7 @@ class Mikrotik
$iport = explode(":", $ip); $iport = explode(":", $ip);
return new RouterOS\Client($iport[0], $user, $pass, ($iport[1]) ? $iport[1] : null); return new RouterOS\Client($iport[0], $user, $pass, ($iport[1]) ? $iport[1] : null);
} catch (Exception $e) { } catch (Exception $e) {
$ui->assign("error_meesage","Unable to connect to the router.<br>" . $e->getMessage()); $ui->assign("error_meesage", "Unable to connect to the router.<br>" . $e->getMessage());
$ui->display('router-error.tpl'); $ui->display('router-error.tpl');
die(); die();
} }
@ -75,15 +75,46 @@ class Mikrotik
'/ip hotspot user profile print .proplist=name', '/ip hotspot user profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$profileName = $client->sendSync($printRequest)->getProperty('name'); $profileID = $client->sendSync($printRequest)->getProperty('.id');
if (empty($profileID)) {
Mikrotik::addHotspotPlan($client, $name, $sharedusers, $rate);
}else{
$setRequest = new RouterOS\Request('/ip/hotspot/user/profile/set');
$client(
$setRequest
->setArgument('numbers', $profileID)
->setArgument('shared-users', $sharedusers)
->setArgument('rate-limit', $rate)
);
}
}
$setRequest = new RouterOS\Request('/ip/hotspot/user/profile/set'); public static function setHotspotExpiredPlan($client, $name, $pool)
$client( {
$setRequest $printRequest = new RouterOS\Request(
->setArgument('numbers', $profileName) '/ip hotspot user profile print .proplist=name',
->setArgument('shared-users', $sharedusers) RouterOS\Query::where('name', $name)
->setArgument('rate-limit', $rate)
); );
$profileID = $client->sendSync($printRequest)->getProperty('.id');
if (empty($profileID)) {
$addRequest = new RouterOS\Request('/ip/hotspot/user/profile/add');
$client->sendSync(
$addRequest
->setArgument('name', $name)
->setArgument('shared-users', 3)
->setArgument('address-pool', $pool)
->setArgument('rate-limit', '512K/512K')
);
}else{
$setRequest = new RouterOS\Request('/ip/hotspot/user/profile/set');
$client(
$setRequest
->setArgument('numbers', $profileID)
->setArgument('shared-users', 3)
->setArgument('address-pool', $pool)
->setArgument('rate-limit', '512K/512K')
);
}
} }
public static function removeHotspotPlan($client, $name) public static function removeHotspotPlan($client, $name)
@ -92,12 +123,12 @@ class Mikrotik
'/ip hotspot user profile print .proplist=name', '/ip hotspot user profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$profileName = $client->sendSync($printRequest)->getProperty('name'); $profileID = $client->sendSync($printRequest)->getProperty('.id');
$removeRequest = new RouterOS\Request('/ip/hotspot/user/profile/remove'); $removeRequest = new RouterOS\Request('/ip/hotspot/user/profile/remove');
$client( $client(
$removeRequest $removeRequest
->setArgument('numbers', $profileName) ->setArgument('numbers', $profileID)
); );
} }
@ -107,11 +138,11 @@ class Mikrotik
'/ip hotspot user print .proplist=name', '/ip hotspot user print .proplist=name',
RouterOS\Query::where('name', $username) RouterOS\Query::where('name', $username)
); );
$userName = $client->sendSync($printRequest)->getProperty('name'); $userID = $client->sendSync($printRequest)->getProperty('.id');
$removeRequest = new RouterOS\Request('/ip/hotspot/user/remove'); $removeRequest = new RouterOS\Request('/ip/hotspot/user/remove');
$client( $client(
$removeRequest $removeRequest
->setArgument('numbers', $userName) ->setArgument('numbers', $userID)
); );
} }
@ -220,16 +251,16 @@ class Mikrotik
public static function removePpoeUser($client, $username) public static function removePpoeUser($client, $username)
{ {
$printRequest = new RouterOS\Request('/ppp/secret/print'); $printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setArgument('.proplist', '.id'); $printRequest->setArgument('.proplist', '.id');
$printRequest->setQuery(RouterOS\Query::where('name', $username)); $printRequest->setQuery(RouterOS\Query::where('name', $username));
$id = $client->sendSync($printRequest)->getProperty('.id'); $id = $client->sendSync($printRequest)->getProperty('.id');
$removeRequest = new RouterOS\Request('/ppp/secret/remove'); $removeRequest = new RouterOS\Request('/ppp/secret/remove');
$client( $client(
$removeRequest $removeRequest
->setArgument('numbers', $id) ->setArgument('numbers', $id)
); );
} }
public static function addPpoeUser($client, $plan, $customer) public static function addPpoeUser($client, $plan, $customer)
@ -293,12 +324,12 @@ class Mikrotik
'/ip pool print .proplist=name', '/ip pool print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$poolName = $client->sendSync($printRequest)->getProperty('name'); $poolID = $client->sendSync($printRequest)->getProperty('.id');
$removeRequest = new RouterOS\Request('/ip/pool/remove'); $removeRequest = new RouterOS\Request('/ip/pool/remove');
$client( $client(
$removeRequest $removeRequest
->setArgument('numbers', $poolName) ->setArgument('numbers', $poolID)
); );
} }
@ -318,15 +349,15 @@ class Mikrotik
'/ip pool print .proplist=name', '/ip pool print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$poolName = $client->sendSync($printRequest)->getProperty('name'); $poolID = $client->sendSync($printRequest)->getProperty('id');
if (empty($poolName)) { if (empty($poolID)) {
self::addPool($client, $name, $ip_address); self::addPool($client, $name, $ip_address);
} else { } else {
$setRequest = new RouterOS\Request('/ip/pool/set'); $setRequest = new RouterOS\Request('/ip/pool/set');
$client( $client(
$setRequest $setRequest
->setArgument('numbers', $poolName) ->setArgument('numbers', $poolID)
->setArgument('ranges', $ip_address) ->setArgument('ranges', $ip_address)
); );
} }
@ -351,14 +382,14 @@ class Mikrotik
'/ppp profile print .proplist=name', '/ppp profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$profileName = $client->sendSync($printRequest)->getProperty('name'); $profileID = $client->sendSync($printRequest)->getProperty('.id');
if (empty($profileName)) { if (empty($profileID)) {
self::addPpoePlan($client, $name, $pool, $rate); self::addPpoePlan($client, $name, $pool, $rate);
} else { } else {
$setRequest = new RouterOS\Request('/ppp/profile/set'); $setRequest = new RouterOS\Request('/ppp/profile/set');
$client( $client(
$setRequest $setRequest
->setArgument('numbers', $profileName) ->setArgument('numbers', $profileID)
->setArgument('local-address', $pool) ->setArgument('local-address', $pool)
->setArgument('remote-address', $pool) ->setArgument('remote-address', $pool)
->setArgument('rate-limit', $rate) ->setArgument('rate-limit', $rate)
@ -372,12 +403,12 @@ class Mikrotik
'/ppp profile print .proplist=name', '/ppp profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
); );
$profileName = $client->sendSync($printRequest)->getProperty('name'); $profileID = $client->sendSync($printRequest)->getProperty('.id');
$removeRequest = new RouterOS\Request('/ppp/profile/remove'); $removeRequest = new RouterOS\Request('/ppp/profile/remove');
$client( $client(
$removeRequest $removeRequest
->setArgument('numbers', $profileName) ->setArgument('numbers', $profileID)
); );
} }
} }

View File

@ -135,8 +135,12 @@ switch ($action) {
$mikrotik = Mikrotik::info($routers); $mikrotik = Mikrotik::info($routers);
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
Mikrotik::addHotspotPlan($client, $name, $sharedusers, $rate); Mikrotik::addHotspotPlan($client, $name, $sharedusers, $rate);
if(!empty($pool_expired)){
Mikrotik::setHotspotExpiredPlan($client, 'EXPIRED NUXBILL '.$pool_expired, $pool_expired);
}
} }
$d = ORM::for_table('tbl_plans')->create(); $d = ORM::for_table('tbl_plans')->create();
$d->name_plan = $name; $d->name_plan = $name;
$d->id_bw = $id_bw; $d->id_bw = $id_bw;
@ -216,6 +220,9 @@ switch ($action) {
$mikrotik = Mikrotik::info($routers); $mikrotik = Mikrotik::info($routers);
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
Mikrotik::setHotspotPlan($client, $name, $sharedusers, $rate); Mikrotik::setHotspotPlan($client, $name, $sharedusers, $rate);
if(!empty($pool_expired)){
Mikrotik::setHotspotExpiredPlan($client, 'EXPIRED NUXBILL '.$pool_expired, $pool_expired);
}
} }
$d->name_plan = $name; $d->name_plan = $name;
@ -351,6 +358,9 @@ switch ($action) {
$mikrotik = Mikrotik::info($routers); $mikrotik = Mikrotik::info($routers);
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
Mikrotik::addPpoePlan($client, $name, $pool, $rate); Mikrotik::addPpoePlan($client, $name, $pool, $rate);
if(!empty($pool_expired)){
Mikrotik::setPpoePlan($client, 'EXPIRED NUXBILL '.$pool_expired, $pool_expired, '512K/512K');
}
} }
$d = ORM::for_table('tbl_plans')->create(); $d = ORM::for_table('tbl_plans')->create();
@ -419,6 +429,9 @@ switch ($action) {
$mikrotik = Mikrotik::info($routers); $mikrotik = Mikrotik::info($routers);
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
Mikrotik::setPpoePlan($client, $name, $pool, $rate); Mikrotik::setPpoePlan($client, $name, $pool, $rate);
if(!empty($pool_expired)){
Mikrotik::setPpoePlan($client, 'EXPIRED NUXBILL '.$pool_expired, $pool_expired, '512K/512K');
}
} }
$d->name_plan = $name; $d->name_plan = $name;