edit customer radius
This commit is contained in:
parent
e87623d918
commit
0ee60eff3d
@ -134,6 +134,14 @@ class Radius
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function planDelete($plan_id){
|
||||||
|
// Delete Plan
|
||||||
|
Radius::getTablePackage()->where_equal('plan_id', "plan_".$plan_id)->delete_many();
|
||||||
|
// Delete User Plan
|
||||||
|
Radius::getTableUserPackage()->where_equal('groupname', "plan_".$plan_id)->delete_many();
|
||||||
|
}
|
||||||
|
|
||||||
public static function customerChangeUsername($from, $to){
|
public static function customerChangeUsername($from, $to){
|
||||||
$c = Radius::getTableCustomer()->where_equal('username', $from)->findMany();
|
$c = Radius::getTableCustomer()->where_equal('username', $from)->findMany();
|
||||||
if ($c) {
|
if ($c) {
|
||||||
@ -162,6 +170,11 @@ class Radius
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function customerDelete($username){
|
||||||
|
Radius::getTableCustomer()->where_equal('username', $username)->delete_many();
|
||||||
|
Radius::getTableUserPackage()->where_equal('username', $username)->delete_many();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When add a plan to Customer, use this
|
* When add a plan to Customer, use this
|
||||||
*/
|
*/
|
||||||
|
@ -49,8 +49,6 @@ switch ($action) {
|
|||||||
$id_customer = $routes['2'];
|
$id_customer = $routes['2'];
|
||||||
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->find_one();
|
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->find_one();
|
||||||
if ($b) {
|
if ($b) {
|
||||||
$mikrotik = Mikrotik::info($b['routers']);
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
|
||||||
if (Package::rechargeUser($id_customer, $b['routers'], $b['plan_id'], "Recharge", $admin['fullname'])) {
|
if (Package::rechargeUser($id_customer, $b['routers'], $b['plan_id'], "Recharge", $admin['fullname'])) {
|
||||||
r2(U . 'customers/view/' . $id_customer, 's', 'Success Recharge Customer');
|
r2(U . 'customers/view/' . $id_customer, 's', 'Success Recharge Customer');
|
||||||
} else {
|
} else {
|
||||||
@ -62,6 +60,12 @@ switch ($action) {
|
|||||||
$id_customer = $routes['2'];
|
$id_customer = $routes['2'];
|
||||||
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->find_one();
|
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->find_one();
|
||||||
if ($b) {
|
if ($b) {
|
||||||
|
$p = ORM::for_table('tbl_plans')->where('id', $b['plan_id'])->where('enabled', '1')->find_one();
|
||||||
|
if ($p) {
|
||||||
|
if ($p['is_radius']) {
|
||||||
|
//TODO: disconnect using radius
|
||||||
|
Radius::customerDeactivate(ORM::for_table('tbl_customers')->find_one($id_customer));
|
||||||
|
} else {
|
||||||
$mikrotik = Mikrotik::info($b['routers']);
|
$mikrotik = Mikrotik::info($b['routers']);
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
if ($b['type'] == 'Hotspot') {
|
if ($b['type'] == 'Hotspot') {
|
||||||
@ -71,6 +75,7 @@ switch ($action) {
|
|||||||
Mikrotik::removePpoeUser($client, $b['username']);
|
Mikrotik::removePpoeUser($client, $b['username']);
|
||||||
Mikrotik::removePpoeActive($client, $b['username']);
|
Mikrotik::removePpoeActive($client, $b['username']);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$b->status = 'off';
|
$b->status = 'off';
|
||||||
$b->expiration = date('Y-m-d');
|
$b->expiration = date('Y-m-d');
|
||||||
$b->time = date('H:i:s');
|
$b->time = date('H:i:s');
|
||||||
@ -79,23 +84,29 @@ switch ($action) {
|
|||||||
Message::sendTelegram('Admin ' . $admin['username'] . ' Deactivate ' . $b['namebp'] . ' for u' . $b['username']);
|
Message::sendTelegram('Admin ' . $admin['username'] . ' Deactivate ' . $b['namebp'] . ' for u' . $b['username']);
|
||||||
r2(U . 'customers/view/' . $id_customer, 's', 'Success deactivate customer to Mikrotik');
|
r2(U . 'customers/view/' . $id_customer, 's', 'Success deactivate customer to Mikrotik');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
r2(U . 'customers/view/' . $id_customer, 'e', 'Cannot find active plan');
|
r2(U . 'customers/view/' . $id_customer, 'e', 'Cannot find active plan');
|
||||||
break;
|
break;
|
||||||
case 'sync':
|
case 'sync':
|
||||||
$id_customer = $routes['2'];
|
$id_customer = $routes['2'];
|
||||||
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->where('status', 'on')->find_one();
|
$b = ORM::for_table('tbl_user_recharges')->where('customer_id', $id_customer)->where('status', 'on')->find_one();
|
||||||
if ($b) {
|
if ($b) {
|
||||||
$mikrotik = Mikrotik::info($b['routers']);
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
|
||||||
$c = ORM::for_table('tbl_customers')->find_one($id_customer);
|
$c = ORM::for_table('tbl_customers')->find_one($id_customer);
|
||||||
$p = ORM::for_table('tbl_plans')->where('id', $b['plan_id'])->where('enabled', '1')->find_one();
|
$p = ORM::for_table('tbl_plans')->where('id', $b['plan_id'])->where('enabled', '1')->find_one();
|
||||||
if ($p) {
|
if ($p) {
|
||||||
|
if ($p['is_radius']) {
|
||||||
|
Radius::customerAddPlan($c, $p);
|
||||||
|
r2(U . 'customers/view/' . $id_customer, 's', 'Success sync customer to Radius');
|
||||||
|
} else {
|
||||||
|
$mikrotik = Mikrotik::info($b['routers']);
|
||||||
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
if ($b['type'] == 'Hotspot') {
|
if ($b['type'] == 'Hotspot') {
|
||||||
Mikrotik::addHotspotUser($client, $p, $c);
|
Mikrotik::addHotspotUser($client, $p, $c);
|
||||||
} else if ($b['type'] == 'PPPOE') {
|
} else if ($b['type'] == 'PPPOE') {
|
||||||
Mikrotik::addPpoeUser($client, $p, $c);
|
Mikrotik::addPpoeUser($client, $p, $c);
|
||||||
}
|
}
|
||||||
r2(U . 'customers/view/' . $id_customer, 's', 'Success sync customer to Mikrotik');
|
r2(U . 'customers/view/' . $id_customer, 's', 'Success sync customer to Mikrotik');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
r2(U . 'customers/view/' . $id_customer, 'e', 'Customer plan is inactive');
|
r2(U . 'customers/view/' . $id_customer, 'e', 'Customer plan is inactive');
|
||||||
}
|
}
|
||||||
@ -163,20 +174,20 @@ switch ($action) {
|
|||||||
if ($d) {
|
if ($d) {
|
||||||
$c = ORM::for_table('tbl_user_recharges')->where('username', $d['username'])->find_one();
|
$c = ORM::for_table('tbl_user_recharges')->where('username', $d['username'])->find_one();
|
||||||
if ($c) {
|
if ($c) {
|
||||||
|
$p = ORM::for_table('tbl_plans')->find_one($c['plan_id']);
|
||||||
|
if ($p['is_radius']) {
|
||||||
|
Radius::customerDelete($d['username']);
|
||||||
|
} else {
|
||||||
$mikrotik = Mikrotik::info($c['routers']);
|
$mikrotik = Mikrotik::info($c['routers']);
|
||||||
if ($c['type'] == 'Hotspot') {
|
if ($c['type'] == 'Hotspot') {
|
||||||
if (!$config['radius_enable']) {
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
Mikrotik::removeHotspotUser($client, $d['username']);
|
Mikrotik::removeHotspotUser($client, $d['username']);
|
||||||
Mikrotik::removeHotspotActiveUser($client, $d['username']);
|
Mikrotik::removeHotspotActiveUser($client, $d['username']);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (!$config['radius_enable']) {
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
Mikrotik::removePpoeUser($client, $d['username']);
|
Mikrotik::removePpoeUser($client, $d['username']);
|
||||||
Mikrotik::removePpoeActive($client, $d['username']);
|
Mikrotik::removePpoeActive($client, $d['username']);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
$d->delete();
|
$d->delete();
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@ -186,6 +197,7 @@ switch ($action) {
|
|||||||
$c->delete();
|
$c->delete();
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
$d->delete();
|
$d->delete();
|
||||||
@ -272,61 +284,67 @@ switch ($action) {
|
|||||||
$msg .= $_L['Data_Not_Found'] . '<br>';
|
$msg .= $_L['Data_Not_Found'] . '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($d['username'] != $username) {
|
$oldusername = $d['username'];
|
||||||
|
$oldPppoePassword = $d['password'];
|
||||||
|
$oldPassPassword = $d['pppoe_password'];
|
||||||
|
$userDiff = false;
|
||||||
|
$pppoeDiff = false;
|
||||||
|
$passDiff = false;
|
||||||
|
if ($oldusername != $username) {
|
||||||
$c = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
|
$c = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
|
||||||
if ($c) {
|
if ($c) {
|
||||||
$msg .= $_L['account_already_exist'] . '<br>';
|
$msg .= $_L['account_already_exist'] . '<br>';
|
||||||
}
|
}
|
||||||
|
$userDiff = true;
|
||||||
|
}
|
||||||
|
if ($oldPppoePassword != $pppoe_password) {
|
||||||
|
$pppoeDiff = true;
|
||||||
|
}
|
||||||
|
if ($password != '' && $oldPassPassword != $password) {
|
||||||
|
$passDiff = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($msg == '') {
|
if ($msg == '') {
|
||||||
$c = ORM::for_table('tbl_user_recharges')->where('username', $username)->find_one();
|
if ($userDiff) {
|
||||||
|
$d->username = $username;
|
||||||
|
}
|
||||||
|
if ($password != '') {
|
||||||
|
$d->password = $password;
|
||||||
|
}
|
||||||
|
$d->pppoe_password = $pppoe_password;
|
||||||
|
$d->fullname = $fullname;
|
||||||
|
$d->email = $email;
|
||||||
|
$d->address = $address;
|
||||||
|
$d->phonenumber = $phonenumber;
|
||||||
|
$d->save();
|
||||||
|
if ($userDiff || $pppoeDiff || $passDiff) {
|
||||||
|
$c = ORM::for_table('tbl_user_recharges')->where('username', ($userDiff) ? $oldusername : $username)->find_one();
|
||||||
if ($c) {
|
if ($c) {
|
||||||
|
$c->username = $username;
|
||||||
|
$c->save();
|
||||||
|
$p = ORM::for_table('tbl_plans')->find_one($c['plan_id']);
|
||||||
|
if ($p['is_radius']) {
|
||||||
|
if($userDiff){
|
||||||
|
Radius::customerChangeUsername($oldusername, $username);
|
||||||
|
}
|
||||||
|
Radius::customerAddPlan($d, $p);
|
||||||
|
}else{
|
||||||
$mikrotik = Mikrotik::info($c['routers']);
|
$mikrotik = Mikrotik::info($c['routers']);
|
||||||
if ($c['type'] == 'Hotspot') {
|
if ($c['type'] == 'Hotspot') {
|
||||||
if (!$config['radius_enable']) {
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
Mikrotik::setHotspotUser($client, $c['username'], $password);
|
Mikrotik::setHotspotUser($client, $c['username'], $password);
|
||||||
Mikrotik::removeHotspotActiveUser($client, $user['username']);
|
Mikrotik::removeHotspotActiveUser($client, $d['username']);
|
||||||
}
|
|
||||||
|
|
||||||
$d->password = $password;
|
|
||||||
$d->save();
|
|
||||||
} else {
|
} else {
|
||||||
if (!$config['radius_enable']) {
|
|
||||||
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
|
||||||
if (!empty($d['pppoe_password'])) {
|
if (!empty($d['pppoe_password'])) {
|
||||||
Mikrotik::setPpoeUser($client, $c['username'], $d['pppoe_password']);
|
Mikrotik::setPpoeUser($client, $c['username'], $d['pppoe_password']);
|
||||||
} else {
|
} else {
|
||||||
Mikrotik::setPpoeUser($client, $c['username'], $password);
|
Mikrotik::setPpoeUser($client, $c['username'], $password);
|
||||||
}
|
}
|
||||||
Mikrotik::removePpoeActive($client, $user['username']);
|
Mikrotik::removePpoeActive($client, $d['username']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$d->password = $password;
|
|
||||||
$d->save();
|
|
||||||
}
|
}
|
||||||
$d->username = $username;
|
|
||||||
if ($password != '') {
|
|
||||||
$d->password = $password;
|
|
||||||
}
|
}
|
||||||
$d->pppoe_password = $pppoe_password;
|
|
||||||
$d->fullname = $fullname;
|
|
||||||
$d->email = $email;
|
|
||||||
$d->address = $address;
|
|
||||||
$d->phonenumber = $phonenumber;
|
|
||||||
$d->save();
|
|
||||||
} else {
|
|
||||||
$d->username = $username;
|
|
||||||
if ($password != '') {
|
|
||||||
$d->password = $password;
|
|
||||||
}
|
|
||||||
$d->fullname = $fullname;
|
|
||||||
$d->pppoe_password = $pppoe_password;
|
|
||||||
$d->email = $email;
|
|
||||||
$d->address = $address;
|
|
||||||
$d->phonenumber = $phonenumber;
|
|
||||||
$d->save();
|
|
||||||
}
|
}
|
||||||
r2(U . 'customers/list', 's', 'User Updated Successfully');
|
r2(U . 'customers/list', 's', 'User Updated Successfully');
|
||||||
} else {
|
} else {
|
||||||
|
@ -101,6 +101,7 @@ foreach ($d as $ds) {
|
|||||||
$p = ORM::for_table('tbl_plans')->where('id', $u['plan_id'])->find_one();
|
$p = ORM::for_table('tbl_plans')->where('id', $u['plan_id'])->find_one();
|
||||||
|
|
||||||
if ($_c['radius_enable']) {
|
if ($_c['radius_enable']) {
|
||||||
|
//TODO: disconnect using radius
|
||||||
Radius::customerDeactivate($c);
|
Radius::customerDeactivate($c);
|
||||||
}else{
|
}else{
|
||||||
$client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']);
|
$client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']);
|
||||||
@ -150,6 +151,7 @@ foreach ($d as $ds) {
|
|||||||
$p = ORM::for_table('tbl_plans')->where('id', $u['plan_id'])->find_one();
|
$p = ORM::for_table('tbl_plans')->where('id', $u['plan_id'])->find_one();
|
||||||
|
|
||||||
if ($_c['radius_enable']) {
|
if ($_c['radius_enable']) {
|
||||||
|
//TODO: disconnect using radius
|
||||||
Radius::customerDeactivate($c);
|
Radius::customerDeactivate($c);
|
||||||
}else{
|
}else{
|
||||||
$client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']);
|
$client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user