From ec7dee5c8ac38a267bfef901c19a44dc866d618b Mon Sep 17 00:00:00 2001 From: Ibnu Maksum Date: Wed, 22 May 2024 08:50:45 +0700 Subject: [PATCH] Fix if user Active in dashboard customer and order --- system/autoload/Radius.php | 56 +++++++++++++++++------------------- system/autoload/User.php | 4 +-- system/controllers/home.php | 8 +++--- system/controllers/order.php | 9 ++++++ 4 files changed, 42 insertions(+), 35 deletions(-) diff --git a/system/autoload/Radius.php b/system/autoload/Radius.php index ab02656..b5d7e2b 100644 --- a/system/autoload/Radius.php +++ b/system/autoload/Radius.php @@ -15,13 +15,13 @@ class Radius public static function getClient() { global $config; - if(empty($config['radius_client'])){ - if(function_exists("shell_exec")){ + if (empty($config['radius_client'])) { + if (function_exists("shell_exec")) { shell_exec('which radclient'); - }else{ + } else { return ""; } - }else{ + } else { $config['radius_client']; } } @@ -91,13 +91,13 @@ class Radius public static function planUpSert($plan_id, $rate, $pool = null) { $rates = explode('/', $rate); - ##burst fixed - if (strpos($rate, ' ')) { - $ratos = $rates[0].'/'.$rates[1].' '.$rates[2].'/'.$rates[3].'/'.$rates[4].'/'.$rates[5].'/'.$rates[6]; - } else { - $ratos = $rates[0].'/'.$rates[1]; - } - + ##burst fixed + if (strpos($rate, ' ')) { + $ratos = $rates[0] . '/' . $rates[1] . ' ' . $rates[2] . '/' . $rates[3] . '/' . $rates[4] . '/' . $rates[5] . '/' . $rates[6]; + } else { + $ratos = $rates[0] . '/' . $rates[1]; + } + Radius::upsertPackage($plan_id, 'Ascend-Data-Rate', $rates[1], ':='); Radius::upsertPackage($plan_id, 'Ascend-Xmit-Rate', $rates[0], ':='); Radius::upsertPackage($plan_id, 'Mikrotik-Rate-Limit', $ratos, ':='); @@ -171,7 +171,7 @@ class Radius $p = Radius::getTableUserPackage()->where_equal('username', $customer['username'])->findOne(); if ($p) { // if exists - Radius::delAtribute(Radius::getTableCustomer(), 'Max-All-Session', 'username', $customer['username']); + Radius::delAtribute(Radius::getTableCustomer(), 'Max-All-Session', 'username', $customer['username']); Radius::delAtribute(Radius::getTableCustomer(), 'Max-Volume', 'username', $customer['username']); $p->groupname = "plan_" . $plan['id']; $p->save(); @@ -210,23 +210,21 @@ class Radius Radius::upsertCustomer($customer['username'], 'Max-All-Session', $timelimit); // Mikrotik Spesific //Radius::upsertCustomer($customer['username'], 'Max-Data', $datalimit); - - - - + + + + } - - } else { Radius::delAtribute(Radius::getTableCustomer(), 'Max-Volume', 'username', $customer['username']); Radius::delAtribute(Radius::getTableCustomer(), 'Max-All-Session', 'username', $customer['username']); //Radius::delAtribute(Radius::getTableCustomer(), 'Max-Data', 'username', $customer['username']); } - - Radius::disconnectCustomer($customer['username']); - Radius::getTableAcct()->where_equal('username', $customer['username'])->delete_many(); - - + + Radius::disconnectCustomer($customer['username']); + Radius::getTableAcct()->where_equal('username', $customer['username'])->delete_many(); + + // expired user if ($expired != null) { Radius::upsertCustomer($customer['username'], 'Max-All-Session', strtotime($expired) - time()); @@ -245,8 +243,8 @@ class Radius if ($plan['type'] == 'PPPOE') { Radius::upsertCustomerAttr($customer['username'], 'Framed-Pool', $plan['pool'], ':='); } - - + + return true; } return false; @@ -326,10 +324,10 @@ class Radius if ($_app_stage == 'demo') { return null; } - /** - * Fix loop to all Nas but still detecting Hotspot Multylogin from other Nas - */ - $act = ORM::for_table('radacct')->where_raw("acctstoptime IS NULL")->where('username', $username)->find_one(); + /** + * Fix loop to all Nas but still detecting Hotspot Multylogin from other Nas + */ + $act = ORM::for_table('radacct')->where_raw("acctstoptime IS NULL")->where('username', $username)->find_one(); $nas = Radius::getTableNas()->where('nasname', $act['nasipaddress'])->find_many(); $count = count($nas) * 15; set_time_limit($count); diff --git a/system/autoload/User.php b/system/autoload/User.php index 3d897bd..1e5c743 100644 --- a/system/autoload/User.php +++ b/system/autoload/User.php @@ -161,8 +161,8 @@ class User { global $config; if ($config['maintenance_mode'] == true) { - displayMaintenanceMessage(); - // r2(U . 'logout', 'd', ''); + displayMaintenanceMessage(); + // r2(U . 'logout', 'd', ''); } if (!$id) { $id = User::getID(); diff --git a/system/controllers/home.php b/system/controllers/home.php index d1a24a9..7640d05 100644 --- a/system/controllers/home.php +++ b/system/controllers/home.php @@ -18,7 +18,7 @@ if (isset($_GET['renewal'])) { if (_post('send') == 'balance') { if ($config['enable_balance'] == 'yes' && $config['allow_balance_transfer'] == 'yes') { - if ($user['status'] == 'Active') { + if ($user['status'] != 'Active') { _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); } $target = ORM::for_table('tbl_customers')->where('username', _post('username'))->find_one(); @@ -80,7 +80,7 @@ if (_post('send') == 'balance') { r2(U . 'home', 'd', Lang::T('Failed, balance is not available')); } } else if (_post('send') == 'plan') { - if ($user['status'] == 'Active') { + if ($user['status'] != 'Active') { _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); } $actives = ORM::for_table('tbl_user_recharges') @@ -98,7 +98,7 @@ if (_post('send') == 'balance') { $ui->assign('_bills', User::_billing()); if (isset($_GET['recharge']) && !empty($_GET['recharge'])) { - if ($user['status'] == 'Active') { + if ($user['status'] != 'Active') { _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); } if (!empty(App::getTokenValue(_get('stoken')))) { @@ -128,7 +128,7 @@ if (isset($_GET['recharge']) && !empty($_GET['recharge'])) { } } } else if (!empty(_get('extend'))) { - if ($user['status'] == 'Active') { + if ($user['status'] != 'Active') { _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); } if (!$config['extend_expired']) { diff --git a/system/controllers/order.php b/system/controllers/order.php index 0e25677..bc07be1 100644 --- a/system/controllers/order.php +++ b/system/controllers/order.php @@ -148,6 +148,9 @@ switch ($action) { r2(U . "voucher/invoice/"); die(); } + if ($user['status'] != 'Active') { + _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); + } $plan = ORM::for_table('tbl_plans')->where('enabled', '1')->find_one($routes['3']); if (empty($plan)) { r2(U . "order/package", 'e', Lang::T("Plan Not found")); @@ -202,6 +205,9 @@ switch ($action) { if ($config['enable_balance'] != 'yes') { r2(U . "order/package", 'e', Lang::T("Balance not enabled")); } + if ($user['status'] != 'Active') { + _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); + } $ui->assign('_title', Lang::T('Buy for friend')); $ui->assign('_system_menu', 'package'); $plan = ORM::for_table('tbl_plans')->find_one($routes['3']); @@ -372,6 +378,9 @@ switch ($action) { } else if (!empty($gateway)) { $_SESSION['gateway'] = $gateway; } + if ($user['status'] != 'Active') { + _alert(Lang::T('This account status') . ' : ' . Lang::T($user['status']), 'danger', ""); + } if (empty($gateway)) { r2(U . 'order/gateway/' . $routes[2] . '/' . $routes[3], 'w', Lang::T("Please select Payment Gateway")); }