From 915108a1aee36cccab54912716cdec9ab8bac262 Mon Sep 17 00:00:00 2001 From: Ibnu Maksum Date: Mon, 16 Oct 2023 15:06:56 +0700 Subject: [PATCH] logs viewer --- system/controllers/logs.php | 67 ++++++++++++++++++++++++++++++++++ ui/ui/logs-radius.tpl | 71 +++++++++++++++++++++++++++++++++++++ ui/ui/logs.tpl | 54 +++++++++++----------------- ui/ui/sections/header.tpl | 13 ++++--- 4 files changed, 168 insertions(+), 37 deletions(-) create mode 100644 system/controllers/logs.php create mode 100644 ui/ui/logs-radius.tpl diff --git a/system/controllers/logs.php b/system/controllers/logs.php new file mode 100644 index 00000000..4a04d3a3 --- /dev/null +++ b/system/controllers/logs.php @@ -0,0 +1,67 @@ +assign('_title', 'PHPNuxBill Logs'); +$ui->assign('_system_menu', 'logs'); + +$action = $routes['1']; +$admin = Admin::_info(); +$ui->assign('_admin', $admin); + +if ($admin['user_type'] != 'Admin') { + r2(U . "dashboard", 'e', $_L['Do_Not_Access']); +} + + +switch ($action) { + case 'list': + $name = _post('name'); + $keep = _post('keep'); + if (!empty($keep)) { + ORM::raw_execute("DELETE FROM tbl_logs WHERE date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL $keep DAY))"); + r2(U . "logs/list/", 's', "Delete logs older than $keep days"); + } + if ($name != '') { + $paginator = Paginator::bootstrap('tbl_logs', 'description', '%' . $name . '%'); + $d = ORM::for_table('tbl_logs')->where_like('description', '%' . $name . '%')->offset($paginator['startpoint'])->limit($paginator['limit'])->order_by_desc('id')->find_many(); + } else { + $paginator = Paginator::bootstrap('tbl_logs'); + $d = ORM::for_table('tbl_logs')->offset($paginator['startpoint'])->limit($paginator['limit'])->order_by_desc('id')->find_many(); + } + + $ui->assign('name', $name); + $ui->assign('d', $d); + $ui->assign('paginator', $paginator); + $ui->display('logs.tpl'); + break; + case 'radius': + $name = _post('name'); + $keep = _post('keep'); + $page = (isset($routes['2']) ? intval($routes['2']) : 0); + $pageNow = $page * 20; + if (!empty($keep)) { + ORM::raw_execute("DELETE FROM radpostauth WHERE UNIX_TIMESTAMP(authdate) < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL $keep DAY))", [], 'radius'); + r2(U . "logs/radius/", 's', "Delete logs older than $keep days"); + } + if ($name != '') { + $d = ORM::for_table('radpostauth', 'radius')->where_like('username', '%' . $name . '%')->offset($pageNow)->limit(10)->order_by_desc('id')->find_many(); + } else { + $d = ORM::for_table('radpostauth', 'radius')->offset($pageNow)->limit(10)->order_by_desc('id')->find_many(); + } + + $ui->assign('page', $page); + $ui->assign('name', $name); + $ui->assign('d', $d); + $ui->assign('paginator', $paginator); + $ui->display('logs-radius.tpl'); + break; + + + default: + r2(U . 'logs/list/', 's', ''); +} diff --git a/ui/ui/logs-radius.tpl b/ui/ui/logs-radius.tpl new file mode 100644 index 00000000..580c35ef --- /dev/null +++ b/ui/ui/logs-radius.tpl @@ -0,0 +1,71 @@ +{include file="sections/header.tpl"} + +
+
+
+
+ Radius +
+
+
+
+ +
+
+
+
+ Keep Logs + + Days +
+ +
+
  +
+
+
+ + + {foreach $d as $ds} + + + + + + + + {/foreach} + +
{$ds['id']}{Lang::dateTimeFormat($ds['authdate'])}{$ds['username']}{$ds['reply']}
+
+ +
+
+
+
+ +{include file="sections/footer.tpl"} \ No newline at end of file diff --git a/ui/ui/logs.tpl b/ui/ui/logs.tpl index a5e40ecd..46b8feab 100644 --- a/ui/ui/logs.tpl +++ b/ui/ui/logs.tpl @@ -4,22 +4,17 @@
-
- sync -
- {$_L['Pool']} + PhpNuxBill
-
-
-