add access-period

This commit is contained in:
Ibnu Maksum 2023-10-16 09:57:22 +07:00
parent f9e62202c0
commit 7e4c638b07
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5

View File

@ -202,6 +202,7 @@ class Radius
} }
// expired user // expired user
if ($expired != null) { if ($expired != null) {
Radius::upsertCustomer($customer['username'], 'access-period', strtotime($expired) - time());
Radius::upsertCustomer($customer['username'], 'expiration', date('d M Y H:i:s', strtotime($expired))); Radius::upsertCustomer($customer['username'], 'expiration', date('d M Y H:i:s', strtotime($expired)));
// Mikrotik Spesific // Mikrotik Spesific
Radius::upsertCustomer( Radius::upsertCustomer(
@ -210,8 +211,8 @@ class Radius
date('Y-m-d', strtotime($expired)) . 'T' . date('H:i:s', strtotime($expired)) . Timezone::getTimeOffset($config['timezone']) date('Y-m-d', strtotime($expired)) . 'T' . date('H:i:s', strtotime($expired)) . Timezone::getTimeOffset($config['timezone'])
); );
} else { } else {
$r = Radius::getTableCustomer()->where_equal('username', $customer['username'])->whereEqual('attribute', 'expiration')->findOne(); Radius::delAtribute(Radius::getTableCustomer(), 'access-period', 'username', $customer['username']);
if($r) $r->delete(); Radius::delAtribute(Radius::getTableCustomer(), 'expiration', 'username', $customer['username']);
} }
return true; return true;
} }
@ -232,7 +233,8 @@ class Radius
return true; return true;
} }
private static function delAtribute($tabel, $attribute, $key, $value){ private static function delAtribute($tabel, $attribute, $key, $value)
{
$r = $tabel->where_equal($key, $value)->whereEqual('attribute', $attribute)->findOne(); $r = $tabel->where_equal($key, $value)->whereEqual('attribute', $attribute)->findOne();
if ($r) $r->delete(); if ($r) $r->delete();
} }
@ -270,7 +272,8 @@ class Radius
return $r->save(); return $r->save();
} }
public static function disconnectCustomer($username){ public static function disconnectCustomer($username)
{
$nas = Radius::getTableNas()->findMany(); $nas = Radius::getTableNas()->findMany();
$count = count($nas) * 15; $count = count($nas) * 15;
set_time_limit($count); set_time_limit($count);