PPP Comment

This commit is contained in:
Ibnu Maksum 2023-08-18 13:37:07 +07:00
parent 4c8f0b27a1
commit 2c7d0a321e
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
2 changed files with 50 additions and 31 deletions

View File

@ -5,6 +5,7 @@
## 2023.8.18 ## 2023.8.18
- Fix Auto Renewall Cronjob - Fix Auto Renewall Cronjob
- Add comment to Mikrotik User
## 2023.8.16 ## 2023.8.16

View File

@ -4,8 +4,9 @@ use PEAR2\Net\RouterOS;
class Mikrotik class Mikrotik
{ {
public static function info($name){ public static function info($name)
$d = ORM::for_table('tbl_routers')->where('name',$name)->find_one(); {
$d = ORM::for_table('tbl_routers')->where('name', $name)->find_one();
return $d; return $d;
} }
@ -19,7 +20,8 @@ class Mikrotik
} }
} }
public static function isUserLogin($client, $username){ public static function isUserLogin($client, $username)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ip hotspot active print', '/ip hotspot active print',
RouterOS\Query::where('user', $username) RouterOS\Query::where('user', $username)
@ -27,7 +29,8 @@ class Mikrotik
return $client->sendSync($printRequest)->getProperty('.id'); return $client->sendSync($printRequest)->getProperty('.id');
} }
public static function logMeIn($client, $user, $pass, $ip, $mac){ public static function logMeIn($client, $user, $pass, $ip, $mac)
{
$addRequest = new RouterOS\Request('/ip/hotspot/active/login'); $addRequest = new RouterOS\Request('/ip/hotspot/active/login');
$client->sendSync( $client->sendSync(
$addRequest $addRequest
@ -38,7 +41,8 @@ class Mikrotik
); );
} }
public static function logMeOut($client, $user){ public static function logMeOut($client, $user)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ip hotspot active print', '/ip hotspot active print',
RouterOS\Query::where('user', $user) RouterOS\Query::where('user', $user)
@ -51,7 +55,8 @@ class Mikrotik
); );
} }
public static function addHotspotPlan($client, $name, $sharedusers, $rate){ public static function addHotspotPlan($client, $name, $sharedusers, $rate)
{
$addRequest = new RouterOS\Request('/ip/hotspot/user/profile/add'); $addRequest = new RouterOS\Request('/ip/hotspot/user/profile/add');
$client->sendSync( $client->sendSync(
$addRequest $addRequest
@ -61,7 +66,8 @@ class Mikrotik
); );
} }
public static function setHotspotPlan($client, $name, $sharedusers, $rate){ public static function setHotspotPlan($client, $name, $sharedusers, $rate)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ip hotspot user profile print .proplist=name', '/ip hotspot user profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
@ -77,7 +83,8 @@ class Mikrotik
); );
} }
public static function removeHotspotPlan($client, $name){ public static function removeHotspotPlan($client, $name)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ip hotspot user profile print .proplist=name', '/ip hotspot user profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
@ -119,7 +126,7 @@ class Mikrotik
->setArgument('name', $customer['username']) ->setArgument('name', $customer['username'])
->setArgument('profile', $plan['name_plan']) ->setArgument('profile', $plan['name_plan'])
->setArgument('password', $customer['password']) ->setArgument('password', $customer['password'])
->setArgument('comment', $customer['fullname'] .' | '.$customer['address']) ->setArgument('comment', $customer['fullname'])
->setArgument('email', $customer['email']) ->setArgument('email', $customer['email'])
->setArgument('limit-uptime', $timelimit) ->setArgument('limit-uptime', $timelimit)
); );
@ -133,7 +140,7 @@ class Mikrotik
->setArgument('name', $customer['username']) ->setArgument('name', $customer['username'])
->setArgument('profile', $plan['name_plan']) ->setArgument('profile', $plan['name_plan'])
->setArgument('password', $customer['password']) ->setArgument('password', $customer['password'])
->setArgument('comment', $customer['fullname'] .' | '.$customer['address']) ->setArgument('comment', $customer['fullname'])
->setArgument('email', $customer['email']) ->setArgument('email', $customer['email'])
->setArgument('limit-bytes-total', $datalimit) ->setArgument('limit-bytes-total', $datalimit)
); );
@ -151,7 +158,7 @@ class Mikrotik
->setArgument('name', $customer['username']) ->setArgument('name', $customer['username'])
->setArgument('profile', $plan['name_plan']) ->setArgument('profile', $plan['name_plan'])
->setArgument('password', $customer['password']) ->setArgument('password', $customer['password'])
->setArgument('comment', $customer['fullname'] .' | '.$customer['address']) ->setArgument('comment', $customer['fullname'])
->setArgument('email', $customer['email']) ->setArgument('email', $customer['email'])
->setArgument('limit-uptime', $timelimit) ->setArgument('limit-uptime', $timelimit)
->setArgument('limit-bytes-total', $datalimit) ->setArgument('limit-bytes-total', $datalimit)
@ -162,14 +169,15 @@ class Mikrotik
$addRequest $addRequest
->setArgument('name', $customer['username']) ->setArgument('name', $customer['username'])
->setArgument('profile', $plan['name_plan']) ->setArgument('profile', $plan['name_plan'])
->setArgument('comment', $customer['fullname'] .' | '.$customer['address']) ->setArgument('comment', $customer['fullname'])
->setArgument('email', $customer['email']) ->setArgument('email', $customer['email'])
->setArgument('password', $customer['password']) ->setArgument('password', $customer['password'])
); );
} }
} }
public static function setHotspotUser($client, $user, $pass, $nuser= null){ public static function setHotspotUser($client, $user, $pass, $nuser = null)
{
$printRequest = new RouterOS\Request('/ip/hotspot/user/print'); $printRequest = new RouterOS\Request('/ip/hotspot/user/print');
$printRequest->setArgument('.proplist', '.id'); $printRequest->setArgument('.proplist', '.id');
$printRequest->setQuery(RouterOS\Query::where('name', $user)); $printRequest->setQuery(RouterOS\Query::where('name', $user));
@ -224,9 +232,9 @@ class Mikrotik
public static function addPpoeUser($client, $plan, $customer) public static function addPpoeUser($client, $plan, $customer)
{ {
$addRequest = new RouterOS\Request('/ppp/secret/add'); $addRequest = new RouterOS\Request('/ppp/secret/add');
if(!empty($customer['pppoe_password'])){ if (!empty($customer['pppoe_password'])) {
$pass = $customer['pppoe_password']; $pass = $customer['pppoe_password'];
}else{ } else {
$pass = $customer['password']; $pass = $customer['password'];
} }
$client->sendSync( $client->sendSync(
@ -234,11 +242,13 @@ class Mikrotik
->setArgument('name', $customer['username']) ->setArgument('name', $customer['username'])
->setArgument('service', 'pppoe') ->setArgument('service', 'pppoe')
->setArgument('profile', $plan['name_plan']) ->setArgument('profile', $plan['name_plan'])
->setArgument('comment', $customer['fullname'] . ' | ' . $customer['email'])
->setArgument('password', $pass) ->setArgument('password', $pass)
); );
} }
public static function setPpoeUser($client, $user, $pass, $nuser= null){ public static function setPpoeUser($client, $user, $pass, $nuser = null)
{
$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', $user)); $printRequest->setQuery(RouterOS\Query::where('name', $user));
@ -274,7 +284,8 @@ class Mikrotik
$client->sendSync($removeRequest); $client->sendSync($removeRequest);
} }
public static function removePool($client, $name){ public static function removePool($client, $name)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ip pool print .proplist=name', '/ip pool print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)
@ -282,29 +293,33 @@ class Mikrotik
$poolName = $client->sendSync($printRequest)->getProperty('name'); $poolName = $client->sendSync($printRequest)->getProperty('name');
$removeRequest = new RouterOS\Request('/ip/pool/remove'); $removeRequest = new RouterOS\Request('/ip/pool/remove');
$client($removeRequest $client(
$removeRequest
->setArgument('numbers', $poolName) ->setArgument('numbers', $poolName)
); );
} }
public static function addPool($client, $name, $ip_address){ public static function addPool($client, $name, $ip_address)
{
$addRequest = new RouterOS\Request('/ip/pool/add'); $addRequest = new RouterOS\Request('/ip/pool/add');
$client->sendSync($addRequest $client->sendSync(
$addRequest
->setArgument('name', $name) ->setArgument('name', $name)
->setArgument('ranges', $ip_address) ->setArgument('ranges', $ip_address)
); );
} }
public static function setPool($client, $name, $ip_address){ public static function setPool($client, $name, $ip_address)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/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'); $poolName = $client->sendSync($printRequest)->getProperty('name');
if(empty($poolName)){ if (empty($poolName)) {
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
@ -315,7 +330,8 @@ class Mikrotik
} }
public static function addPpoePlan($client, $name, $pool, $rate){ public static function addPpoePlan($client, $name, $pool, $rate)
{
$addRequest = new RouterOS\Request('/ppp/profile/add'); $addRequest = new RouterOS\Request('/ppp/profile/add');
$client->sendSync( $client->sendSync(
$addRequest $addRequest
@ -326,15 +342,16 @@ class Mikrotik
); );
} }
public static function setPpoePlan($client, $name, $pool, $rate){ public static function setPpoePlan($client, $name, $pool, $rate)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/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'); $profileName = $client->sendSync($printRequest)->getProperty('name');
if(empty($profileName)){ if (empty($profileName)) {
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
@ -346,7 +363,8 @@ class Mikrotik
} }
} }
public static function removePpoePlan($client, $name){ public static function removePpoePlan($client, $name)
{
$printRequest = new RouterOS\Request( $printRequest = new RouterOS\Request(
'/ppp profile print .proplist=name', '/ppp profile print .proplist=name',
RouterOS\Query::where('name', $name) RouterOS\Query::where('name', $name)