From a94e08ec66162b2e99be3fdba4003461cf4c8fa5 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 18 Nov 2024 21:17:39 +0100 Subject: [PATCH] Squashed commit of the following: commit a59dc4394043aa5fce060426f13d965ab3c6679f Author: Ad Schellevis Date: Mon Nov 18 21:16:13 2024 +0100 Services: Kea DHCP [new]: Leases DHCPv4 - minor cleanups for https://github.com/opnsense/core/pull/8053 commit 9986eca14c4ee72675bedc31953cefe60a6659cd Merge: d23170c05 8d0ab40c5 Author: cpalv <13182421+cpalv@users.noreply.github.com> Date: Mon Nov 11 23:46:43 2024 -0600 Merge branch 'opnsense:master' into mac-db commit d23170c05f3d511000d8302dd2403c0761d757ac Author: eddie <13182421+cpalv@users.noreply.github.com> Date: Mon Nov 11 23:45:16 2024 -0600 Add MAC formatter, removed unclosed table row tag macformatter will include the hardware manufacturer info (if it exists) in the same table cell as MAC address removed unclosed 'tr' tag. linked 'hwaddr' column to macformatter. adjusted spacing commit 04e7cf40ee809b3afdcc203d27cd3ed9cd9ff128 Author: eddie <13182421+cpalv@users.noreply.github.com> Date: Mon Nov 11 23:39:30 2024 -0600 add MAC manufacturer info to dhcp lease record --- .../OPNsense/Kea/Api/Leases4Controller.php | 3 +++ .../mvc/app/views/OPNsense/Kea/leases4.volt | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php index 865b44a1c..f4aed0270 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Leases4Controller.php @@ -42,6 +42,7 @@ class Leases4Controller extends ApiControllerBase $leases = json_decode($backend->configdpRun('kea list leases4'), true) ?? []; $ifconfig = json_decode($backend->configdRun('interface list ifconfig'), true); + $mac_db = json_decode($backend->configdRun('interface list macdb'), true) ?? []; $ifmap = []; foreach (Config::getInstance()->object()->interfaces->children() as $if => $if_props) { @@ -61,6 +62,8 @@ class Leases4Controller extends ApiControllerBase $record['if_name'] = $ifmap[$record['if']]['key']; $interfaces[$ifmap[$record['if']]['key']] = $ifmap[$record['if']]['descr']; } + $mac = strtoupper(substr(str_replace(':', '', $record['hwaddr']), 0, 6)); + $record['mac_info'] = isset($mac_db[$mac]) ? $mac_db[$mac] : ''; } } else { $records = []; diff --git a/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt b/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt index 181f65bc6..2439b59d1 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt @@ -63,6 +63,13 @@ "overflowformatter": function (column, row) { return '' + row[column.id] + '
' }, + "macformatter": function (column, row) { + let mac = '' + row.hwaddr + ''; + if (row.mac_info != '') { + mac = mac + '
' + '' + row.mac_info + ''; + } + return mac; + }, "timestamp": function (column, row) { return moment.unix(row[column.id]).local().format('YYYY-MM-DD HH:mm:ss'); }, @@ -91,16 +98,15 @@ - - - - - - - - - + + + + + + + +
{{ lang._('Interface') }}{{ lang._('IP Address') }}{{ lang._('MAC Address') }}{{ lang._('Lifetime') }}{{ lang._('Expire') }}{{ lang._('Hostname') }}
{{ lang._('Interface') }}{{ lang._('IP Address') }}{{ lang._('MAC Address') }}{{ lang._('Lifetime') }}{{ lang._('Expire') }}{{ lang._('Hostname') }}