diff --git a/LibreNMS/Util/Url.php b/LibreNMS/Util/Url.php index 1ceb882740..dde15a8aa1 100644 --- a/LibreNMS/Util/Url.php +++ b/LibreNMS/Util/Url.php @@ -39,8 +39,8 @@ use Symfony\Component\HttpFoundation\ParameterBag; class Url { /** - * @param Device $device - * @param string $text + * @param Device|null $device + * @param string|null $text * @param array $vars * @param int $start * @param int $end @@ -48,10 +48,10 @@ class Url * @param int $overlib * @return string */ - public static function deviceLink($device, $text = null, $vars = [], $start = 0, $end = 0, $escape_text = 1, $overlib = 1) + public static function deviceLink($device, $text = '', $vars = [], $start = 0, $end = 0, $escape_text = 1, $overlib = 1) { if (! $device instanceof Device || ! $device->hostname) { - return ''; + return (string) $text; } if (! $device->canAccess(Auth::user())) { diff --git a/includes/html/pages/routing/bgp.inc.php b/includes/html/pages/routing/bgp.inc.php index 8ad9e296a9..44597339a1 100644 --- a/includes/html/pages/routing/bgp.inc.php +++ b/includes/html/pages/routing/bgp.inc.php @@ -1,7 +1,11 @@ hasGlobalRead()) { include 'includes/html/error-no-perm.inc.php'; @@ -272,26 +276,26 @@ if (! Auth::user()->hasGlobalRead()) { // display overlib graphs $graph_array = []; $graph_array['type'] = 'bgp_updates'; - $graph_array['id'] = $peer['bgpPeer_id']; $graph_array['to'] = \LibreNMS\Config::get('time.now'); $graph_array['from'] = \LibreNMS\Config::get('time.day'); $graph_array['height'] = '110'; $graph_array['width'] = $width; // Peer Address + $peer_device = Device::whereHas('bgppeers', fn ($q) => $q->where('bgpLocalAddr', $peer['bgpPeerIdentifier']))->first(); + $peeraddresslink = '' . Url::deviceLink($peer_device, $peer_addr, ['tab' => 'routing', 'proto' => 'bgp']) . ''; + + // Local Address + $graph_array['id'] = $peer['bgpPeer_id']; + $graph_array['afi'] = 'ipv4'; + $graph_array['safi'] = 'unicast'; $graph_array_zoom = $graph_array; $graph_array_zoom['height'] = '150'; $graph_array_zoom['width'] = '500'; - $overlib_link = 'device/device=' . $peer['device_id'] . '/tab=routing/proto=bgp/'; - $peeraddresslink = '' . \LibreNMS\Util\Url::overlibLink($overlib_link, $peer_addr, \LibreNMS\Util\Url::graphTag($graph_array_zoom)) . ''; - - // Local Address - $graph_array['afi'] = 'ipv4'; - $graph_array['safi'] = 'unicast'; $graph_array_zoom['afi'] = 'ipv4'; $graph_array_zoom['safi'] = 'unicast'; $overlib_link = 'device/device=' . $peer['device_id'] . '/tab=routing/proto=bgp/'; - $localaddresslink = '' . \LibreNMS\Util\Url::overlibLink($overlib_link, $local_addr, \LibreNMS\Util\Url::graphTag($graph_array_zoom)) . ''; + $localaddresslink = '' . Url::overlibLink($overlib_link, $local_addr, Url::graphTag($graph_array_zoom)) . ''; if ($peer['bgpPeerLastErrorCode'] == 0 && $peer['bgpPeerLastErrorSubCode'] == 0) { $last_error = $peer['bgpPeerLastErrorText']; @@ -313,21 +317,20 @@ if (! Auth::user()->hasGlobalRead()) { } unset($sep); - $peer_device = \App\Models\Device::whereHas('bgppeers', fn ($q) => $q->where('bgpLocalAddr', $peer['bgpPeerIdentifier']))->first(); echo '