'90') { $background['left']='c4323f'; $background['right']='C96A73'; }
elseif ($percentage > '75') { $background['left']='bf5d5b'; $background['right']='d39392'; }
elseif ($percentage > '50') { $background['left']='bf875b'; $background['right']='d3ae92'; }
elseif ($percentage > '25') { $background['left']='5b93bf'; $background['right']='92b7d3'; }
else { $background['left']='9abf5b'; $background['right']='bbd392'; }
return($background);
}
function generate_device_link($device, $text=0, $linksuffix="", $start=0, $end=0)
{
global $twoday, $day, $now, $config;
if (!$start) { $start = $day; }
if (!$end) { $end = $now; }
$class = devclass($device);
if (!$text) { $text = $device['hostname']; }
if (isset($config['os'][$device['os']]['over']))
{
$graphs = $config['os'][$device['os']]['over'];
}
elseif (isset($device['os_group']) && isset($config['os'][$device['os_group']]['over']))
{
$graphs = $config['os'][$device['os_group']]['over'];
}
else
{
$graphs = $config['os']['default']['over'];
}
$url = "device/" . $device['device_id'] . "/" . $linksuffix;
$contents = "
".$device['hostname'];
if ($device['hardware']) { $contents .= " - ".$device['hardware']; }
$contents .= "
";
$contents .= "";
if ($device['os']) { $contents .= mres($config['os'][$device['os']]['text']); }
if ($device['version']) { $contents .= " ".mres($device['version']); }
if ($device['features']) { $contents .= " (".mres($device['features']).")"; }
# if ($device['hardware']) { $contents .= " - ".$device['hardware']; }
$contents .= "
";
# if (isset($device['location'])) { $contents .= "" . htmlentities($device['location'])."
"; }
foreach ($graphs as $entry)
{
$graph = $entry['graph'];
$graphhead = $entry['text'];
$contents .= '';
$contents .= '
'.$graphhead.'';
$contents .= "
![](\"graph.php?id=")
';
$contents .= "
![](\"graph.php?id=")
';
$contents .= '
';
}
$text = htmlentities($text);
$link = overlib_link($url, $text, $contents, $class);
if (device_permitted($device['device_id']))
{
return $link;
} else {
return $device['hostname'];
}
return $link;
}
function overlib_link($url, $text, $contents, $class)
{
global $config;
$contents = str_replace("\"", "\'", $contents);
$output = "";
$output .= $text."";
return $output;
}
function generate_graph_popup($graph_array)
{
global $config;
## Take $graph_array and print day,week,month,year graps in overlib, hovered over graph
$graph = generate_graph_tag($graph_array);
$content = "".$graph_array['popup_title']."
";
$content .= "";
$graph_array['legend'] = "yes";
$graph_array['height'] = "100";
$graph_array['width'] = "340";
$graph_array['from'] = $config['day'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['week'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['month'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['year'];
$content .= generate_graph_tag($graph_array);
$content .= "
";
return overlib_link($graph_array['link'], $graph, $content, NULL);
}
function print_graph_popup($graph_array)
{
echo(generate_graph_popup($graph_array));
}
function permissions_cache($user_id)
{
$permissions = array();
$query = mysql_query("SELECT * FROM devices_perms WHERE user_id = '".$user_id."'");
while ($device = mysql_fetch_assoc($query))
{
$permissions['device'][$device['device_id']] = 1;
}
$query = mysql_query("SELECT * FROM ports_perms WHERE user_id = '".$user_id."'");
while ($port = mysql_fetch_assoc($query))
{
$permissions['port'][$port['interface_id']] = 1;
}
$query = mysql_query("SELECT * FROM bill_perms WHERE user_id = '".$user_id."'");
while ($bill = mysql_fetch_assoc($query))
{
$permissions['bill'][$bill['bill_id']] = 1;
}
return $permissions;
}
function bill_permitted($bill_id)
{
global $permissions;
if ($_SESSION['userlevel'] >= "5") {
$allowed = TRUE;
} elseif ($permissions['bill'][$bill_id]) {
$allowed = TRUE;
} else {
$allowed = FALSE;
}
return $allowed;
}
function port_permitted($interface_id, $device_id = NULL)
{
global $permissions;
if (!is_numeric($device_id)) { $device_id = get_device_id_by_interface_id($interface_id); }
if ($_SESSION['userlevel'] >= "5")
{
$allowed = TRUE;
} elseif (device_permitted($device_id)) {
$allowed = TRUE;
} elseif ($permissions['port'][$interface_id]) {
$allowed = TRUE;
} else {
$allowed = FALSE;
}
return $allowed;
}
function application_permitted($app_id, $device_id = NULL)
{
global $permissions;
if (is_numeric($app_id))
{
if (!$device_id) { $device_id = device_by_id_cache ($app_id); }
if ($_SESSION['userlevel'] >= "5") {
$allowed = TRUE;
} elseif (device_permitted($device_id)) {
$allowed = TRUE;
} elseif ($permissions['application'][$app_id]) {
$allowed = TRUE;
} else {
$allowed = FALSE;
}
} else {
$allowed = FALSE;
}
return $allowed;
}
function device_permitted($device_id)
{
global $permissions;
if ($_SESSION['userlevel'] >= "5")
{
$allowed = true;
} elseif ($permissions['device'][$device_id]) {
$allowed = true;
} else {
$allowed = false;
}
return $allowed;
}
function print_graph_tag($args)
{
echo(generate_graph_tag($args));
}
function generate_graph_tag($args)
{
foreach ($args as $key => $arg)
{
$urlargs[] = $key."=".$arg;
}
return '
';
}
function print_percentage_bar($width, $height, $percent, $left_text, $left_colour, $left_background, $right_text, $right_colour, $right_background)
{
$output = '
'.$left_text.'
'.$right_text.'
';
return $output;
}
function generate_port_link($args, $text = NULL, $type = NULL)
{
global $twoday, $now, $config, $day, $month;
$args = ifNameDescr($args);
if (!$text) { $text = fixIfName($args['label']); }
if ($type) { $args['graph_type'] = $type; }
if (!isset($args['graph_type'])) { $args['graph_type'] = 'port_bits'; }
$class = ifclass($args['ifOperStatus'], $args['ifAdminStatus']);
if (!isset($args['hostname'])) { $args = array_merge($args, device_by_id_cache($args['device_id'])); }
$content = "".$args['hostname']." - " . fixifName($args['label']) . "
";
if ($args['ifAlias']) { $content .= $args['ifAlias']."
"; }
$content .= "";
$graph_array['type'] = $args['graph_type'];
$graph_array['legend'] = "yes";
$graph_array['height'] = "100";
$graph_array['width'] = "340";
$graph_array['to'] = $config['now'];
$graph_array['from'] = $config['day'];
$graph_array['id'] = $args['interface_id'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['week'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['month'];
$content .= generate_graph_tag($graph_array);
$graph_array['from'] = $config['year'];
$content .= generate_graph_tag($graph_array);
$content .= "
";
$url = "device/".$args['device_id']."/port/" . $args['interface_id'] . "/";
if (port_permitted($args['interface_id'])) {
return overlib_link($url, $text, $content, $class);
} else {
return fixifName($text);
}
}
function generate_port_thumbnail($args)
{
if (!$args['bg']) { $args['bg'] = "FFFFF"; }
$args['content'] = "
";
echo(generate_port_link($args, $args['content']));
}
function print_optionbar_start ($height = 20, $width = 0, $marginbottom = 5)
{
echo("
");
}
function print_optionbar_end()
{
echo('
');
}
function geteventicon($message)
{
if ($message == "Device status changed to Down") { $icon = "server_connect.png"; }
if ($message == "Device status changed to Up") { $icon = "server_go.png"; }
if ($message == "Interface went down" || $message == "Interface changed state to Down") { $icon = "if-disconnect.png"; }
if ($message == "Interface went up" || $message == "Interface changed state to Up") { $icon = "if-connect.png"; }
if ($message == "Interface disabled") { $icon = "if-disable.png"; }
if ($message == "Interface enabled") { $icon = "if-enable.png"; }
if (isset($icon)) { return $icon; } else { return false; }
}
function overlibprint($text)
{
return "onmouseover=\"return overlib('" . $text . "');\" onmouseout=\"return nd();\"";
}
function humanmedia($media)
{
array_preg_replace($rewrite_iftype, $media);
return $media;
}
function humanspeed($speed)
{
$speed = formatRates($speed);
if ($speed == "") { $speed = "-"; }
return $speed;
}
function print_error($text)
{
echo('![](/images/15/exclamation.png)
'.$text.'
');
}
function print_message($text)
{
echo('![](/images/16/tick.png)
'.$text.'
');
}
function devclass($device)
{
if (isset($device['status']) && $device['status'] == '0') { $class = "list-device-down"; } else { $class = "list-device"; }
if (isset($device['ignore']) && $device['ignore'] == '1')
{
$class = "list-device-ignored";
if (isset($device['status']) && $device['status'] == '1') { $class = "list-device-ignored-up"; }
}
if (isset($device['disabled']) && $device['disabled'] == '1') { $class = "list-device-disabled"; }
return $class;
}
function getlocations()
{
# Fetch override locations, not through get_dev_attrib, this would be a huge number of queries
$result = mysql_query("SELECT attrib_type,attrib_value,device_id FROM devices_attribs WHERE attrib_type LIKE 'override_sysLocation%' ORDER BY attrib_type");
while ($row = mysql_fetch_assoc($result))
{
if ($row['attrib_type'] == 'override_sysLocation_bool' && $row['attrib_value'] == 1)
{
$ignore_dev_location[$row['device_id']] = 1;
}
# We can do this because of the ORDER BY, "bool" will be handled before "string"
elseif ($row['attrib_type'] == 'override_sysLocation_string' && $ignore_dev_location[$row['device_id']] == 1)
{
if (!in_array($row['attrib_value'],$locations)) { $locations[] = $row['attrib_value']; }
}
}
# Fetch regular locations
if ($_SESSION['userlevel'] >= '5')
{
$result = mysql_query("SELECT D.device_id,location FROM devices AS D GROUP BY location ORDER BY location");
} else {
$result = mysql_query("SELECT D.device_id,location FROM devices AS D, devices_perms AS P WHERE D.device_id = P.device_id AND P.user_id = '" . $_SESSION['user_id'] . "' GROUP BY location ORDER BY location");
}
while ($row = mysql_fetch_assoc($result))
{
# Only add it as a location if it wasn't overridden (and not already there)
if ($row['location'] != '' && !$ignore_dev_location[$row['device_id']])
{
if (!in_array($row['location'],$locations)) { $locations[] = $row['location']; }
}
}
sort($locations);
return $locations;
}
?>