pppoe ip and username

This commit is contained in:
Ibnu Maksum
2024-08-05 10:50:37 +07:00
parent be507a013a
commit 9f96da34b5
10 changed files with 134 additions and 65 deletions

View File

@ -363,7 +363,9 @@ switch ($action) {
$username = alphanumeric(_post('username'), ":+_.@-");
$fullname = _post('fullname');
$password = trim(_post('password'));
$pppoe_username = trim(_post('pppoe_username'));
$pppoe_password = trim(_post('pppoe_password'));
$pppoe_ip = trim(_post('pppoe_ip'));
$email = _post('email');
$address = _post('address');
$phonenumber = _post('phonenumber');
@ -399,7 +401,9 @@ switch ($action) {
$d = ORM::for_table('tbl_customers')->create();
$d->username = $username;
$d->password = $password;
$d->pppoe_username = $pppoe_username;
$d->pppoe_password = $pppoe_password;
$d->pppoe_ip = $pppoe_ip;
$d->email = $email;
$d->account_type = $account_type;
$d->fullname = $fullname;
@ -484,7 +488,9 @@ switch ($action) {
$fullname = _post('fullname');
$account_type = _post('account_type');
$password = trim(_post('password'));
$pppoe_username = trim(_post('pppoe_username'));
$pppoe_password = trim(_post('pppoe_password'));
$pppoe_ip = trim(_post('pppoe_ip'));
$email = _post('email');
$address = _post('address');
$phonenumber = Lang::phoneFormat(_post('phonenumber'));
@ -544,7 +550,9 @@ switch ($action) {
if ($password != '') {
$c->password = $password;
}
$c->pppoe_username = $pppoe_username;
$c->pppoe_password = $pppoe_password;
$c->pppoe_ip = $pppoe_ip;
$c->fullname = $fullname;
$c->email = $email;
$c->account_type = $account_type;

View File

@ -40,16 +40,23 @@ class MikrotikPppoe
//customer not exists, add it
$this->addPpoeUser($client, $plan, $customer);
}else{
if (!empty($customer['pppoe_password'])) {
$pass = $customer['pppoe_password'];
} else {
$pass = $customer['password'];
}
$setRequest = new RouterOS\Request('/ppp/secret/set');
if (!empty($customer['pppoe_password'])) {
$setRequest->setArgument('password', $customer['pppoe_password']);
} else {
$setRequest->setArgument('password', $customer['password']);
}
if (!empty($customer['pppoe_username'])) {
$setRequest->setArgument('name', $customer['pppoe_username']);
} else {
$setRequest->setArgument('name', $customer['username']);
}
if (!empty($customer['pppoe_ip'])) {
$setRequest->setArgument('local-address', $customer['pppoe_ip']);
}
$setRequest->setArgument('numbers', $cid);
$setRequest->setArgument('profile', $plan['name_plan']);
$setRequest->setArgument('comment', $customer['fullname'] . ' | ' . $customer['email'] . ' | ' . implode(', ', User::getBillNames($customer['id'])));
$setRequest->setArgument('password', $pass);
$client->sendSync($setRequest);
//disconnect then
if(isset($isChangePlan) && $isChangePlan){
@ -285,26 +292,28 @@ class MikrotikPppoe
function addPpoeUser($client, $plan, $customer)
{
global $_app_stage;
$addRequest = new RouterOS\Request('/ppp/secret/add');
$setRequest = new RouterOS\Request('/ppp/secret/add');
$setRequest->setArgument('service', 'pppoe');
$setRequest->setArgument('profile', $plan['name_plan']);
$setRequest->setArgument('comment', $customer['fullname'] . ' | ' . $customer['email'] . ' | ' . implode(', ', User::getBillNames($customer['id'])));
if (!empty($customer['pppoe_password'])) {
$pass = $customer['pppoe_password'];
$setRequest->setArgument('password', $customer['pppoe_password']);
} else {
$pass = $customer['password'];
$setRequest->setArgument('password', $customer['password']);
}
$client->sendSync(
$addRequest
->setArgument('name', $customer['username'])
->setArgument('service', 'pppoe')
->setArgument('profile', $plan['name_plan'])
->setArgument('comment', $customer['fullname'] . ' | ' . $customer['email'] . ' | ' . implode(', ', User::getBillNames($customer['id'])))
->setArgument('password', $pass)
);
if (!empty($customer['pppoe_username'])) {
$setRequest->setArgument('name', $customer['pppoe_username']);
} else {
$setRequest->setArgument('name', $customer['username']);
}
if (!empty($customer['pppoe_ip'])) {
$setRequest->setArgument('local-address', $customer['pppoe_ip']);
}
$client->sendSync($setRequest);
}
function setPpoeUser($client, $user, $pass)
{
global $_app_stage;
$printRequest = new RouterOS\Request('/ppp/secret/print');
$printRequest->setArgument('.proplist', '.id');
$printRequest->setQuery(RouterOS\Query::where('name', $user));

View File

@ -688,5 +688,7 @@
"Previous": "Previous",
"Share": "Share",
"Mail_Deleted_Successfully": "Mail Deleted Successfully",
"Message_Not_Found": "Message Not Found"
"Message_Not_Found": "Message Not Found",
"Send_Welcome_Message": "Send Welcome Message",
"WA": "WA"
}

View File

@ -136,5 +136,9 @@
],
"2024.8.2" : [
"CREATE TABLE IF NOT EXISTS `tbl_customers_inbox` (`id` int UNSIGNED NOT NULL AUTO_INCREMENT, `customer_id` int NOT NULL, `date_created` datetime NOT NULL, `date_read` datetime DEFAULT NULL, `subject` varchar(64) COLLATE utf8mb4_general_ci NOT NULL, `body` TEXT NULL DEFAULT NULL, `from` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'System' COMMENT 'System or Admin or Else',`admin_id` int NOT NULL DEFAULT '0' COMMENT 'other than admin is 0', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;"
],
"2024.8.5" : [
"ALTER TABLE `tbl_customers` ADD `pppoe_username` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'For PPPOE Login' AFTER `password`;",
"ALTER TABLE `tbl_customers` ADD `pppoe_ip` VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'For PPPOE Login' AFTER `pppoe_password`;"
]
}