diff --git a/src/www/widgets/widgets/ipsec.widget.php b/src/www/widgets/widgets/ipsec.widget.php index 0dbf0de74..e2c76da84 100644 --- a/src/www/widgets/widgets/ipsec.widget.php +++ b/src/www/widgets/widgets/ipsec.widget.php @@ -68,6 +68,29 @@ foreach ($ipsec_status as $status_key => $status_value) { } } } +// Initialize variable aggregated_data and loop through the ipsec_leases array to fetch the data for user, address and online status. Used later for div ipsec-mobile. Additionally count the unique_users in the same foreach loop, used for mobile_users count. +$aggregated_data = []; +$unique_users = []; + +foreach ($ipsec_leases as $lease) { + // For each unique user, initialize an empty array + if (!isset($aggregated_data[$lease['user']])) { + $aggregated_data[$lease['user']] = []; + } + // Add the lease data to this user's array of leases + $aggregated_data[$lease['user']][] = [ + 'address' => $lease['address'], + 'online' => $lease['online'] + ]; + + // Count unique users in ipsec_leases array if lease is online + if ($lease['online']) { + $unique_users[$lease['user']] = true; + } +} + +// Return the number of unique_users as mobile_users +$mobile_users = count($unique_users); ?>