Fix if user Active in dashboard customer and order

This commit is contained in:
Ibnu Maksum
2024-05-22 08:50:45 +07:00
parent 3201df263f
commit ec7dee5c8a
4 changed files with 42 additions and 35 deletions

View File

@ -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);

View File

@ -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();