From 65e07d19515d247f9032e60bc6a5da83b380daa3 Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sat, 18 Aug 2018 17:07:42 +0100 Subject: [PATCH] Fixed widgets from updated dbFacile changes (#9033) * Fixed widgets from updated dbFacile changes * Updated top interfaces --- html/includes/common/top-devices.inc.php | 8 +++++--- html/includes/common/top-interfaces.inc.php | 13 ++++++++----- html/includes/common/worldmap.inc.php | 2 ++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/html/includes/common/top-devices.inc.php b/html/includes/common/top-devices.inc.php index 69db0e2c54..07ccba7a41 100644 --- a/html/includes/common/top-devices.inc.php +++ b/html/includes/common/top-devices.inc.php @@ -20,7 +20,7 @@ use LibreNMS\Authentication\Auth; -$top_query = $widget_settings['top_query']; +$top_query = $widget_settings['top_query'] ?: 'traffic'; $sort_order = $widget_settings['sort_order']; $selected_sort_asc = ''; @@ -155,8 +155,10 @@ if (defined('SHOW_SETTINGS') || empty($widget_settings)) { $common_output[] = '

Top ' . $device_count . ' devices (last ' . $interval . ' minutes)

'; - $params = array('user' => Auth::id(), 'interval' => array($interval_seconds), 'count' => array($device_count)); - + $params = ['interval' => $interval_seconds, 'count' => $device_count]; + if (!Auth::user()->hasGlobalRead()) { + $params['user'] = Auth::id(); + } if ($top_query === 'traffic') { if (Auth::user()->hasGlobalRead()) { $query = ' diff --git a/html/includes/common/top-interfaces.inc.php b/html/includes/common/top-interfaces.inc.php index d226fc1296..89ccbb03a9 100644 --- a/html/includes/common/top-interfaces.inc.php +++ b/html/includes/common/top-interfaces.inc.php @@ -99,16 +99,19 @@ $(function() { '; } else { $interval = $widget_settings['time_interval']; - (integer) $lastpoll_seconds = ($interval * 60); - (integer) $interface_count = $widget_settings['interface_count']; - $params = array('user' => Auth::id(), 'lastpoll' => array($lastpoll_seconds), 'count' => array($interface_count), 'filter' => ($widget_settings['interface_filter']?:(int)1)); + (integer) $lastpoll_seconds = ($interval * 60) ?: 300; + (integer) $interface_count = $widget_settings['interface_count'] ?: 5; + $params = ['lastpoll' => $lastpoll_seconds, 'count' => $interface_count, 'filter1' => ($widget_settings['interface_filter']?:(int)1), 'filter2' => ($widget_settings['interface_filter']?:(int)1)]; + if (!Auth::user()->hasGlobalRead()) { + $params['user'] = Auth::id(); + } if (Auth::user()->hasGlobalRead()) { $query = ' SELECT p.*, devices.*, p.ifInOctets_rate + p.ifOutOctets_rate as total FROM ports as p INNER JOIN devices ON p.device_id = devices.device_id AND unix_timestamp() - p.poll_time <= :lastpoll - AND ( p.ifType = :filter || 1 = :filter ) + AND ( p.ifType = :filter1 || 1 = :filter2 ) AND ( p.ifInOctets_rate > 0 || p.ifOutOctets_rate > 0 ) ORDER BY total DESC LIMIT :count @@ -122,7 +125,7 @@ $(function() { LEFT JOIN devices_perms ON devices.device_id = devices_perms.device_id WHERE ( ports_perms.user_id = :user || devices_perms.user_id = :user ) AND unix_timestamp() - ports.poll_time <= :lastpoll - AND ( ports.ifType = :filter || 1 = :filter ) + AND ( ports.ifType = :filter1 || 1 = :filter2 ) AND ( ports.ifInOctets_rate > 0 || ports.ifOutOctets_rate > 0 ) GROUP BY ports.port_id ORDER BY total DESC diff --git a/html/includes/common/worldmap.inc.php b/html/includes/common/worldmap.inc.php index 94b81961f1..dc3047e5ad 100644 --- a/html/includes/common/worldmap.inc.php +++ b/html/includes/common/worldmap.inc.php @@ -176,6 +176,7 @@ var greenMarker = L.AwesomeMarkers.icon({ WHERE `disabled`=0 AND `ignore`=0 AND ((`lat` != '' AND `lng` != '') OR (`devices`.`location` REGEXP '\[[0-9\.\, ]+\]')) AND `status` IN (".$widget_settings['status'].") ORDER BY `status` ASC, `hostname`"; + $param = []; } else { // Normal user - grab devices that user has permissions to $sql = "SELECT DISTINCT(`devices`.`device_id`) as `device_id`,`devices`.`location`,`sysName`,`hostname`,`os`,`status`,`lat`,`lng` @@ -187,6 +188,7 @@ var greenMarker = L.AwesomeMarkers.icon({ ORDER BY `status` ASC, `hostname`"; $param[] = Auth::id(); } + foreach (dbFetchRows($sql, $param) as $map_devices) { $icon = 'greenMarker'; $z_offset = 0;