billing system fixes (make moar sexypants)

git-svn-id: http://www.observium.org/svn/observer/trunk@1592 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong
2010-07-31 21:08:35 +00:00
parent 7c3c0cfbe2
commit dacdaf7267
8 changed files with 324 additions and 207 deletions

View File

@@ -74,6 +74,8 @@ if (isset($_SESSION['username']))
setcookie("username", $_SESSION['username'], time()+60*60*24*100, "/");
setcookie("password", $_SESSION['password'], time()+60*60*24*100, "/");
}
$permissions = permissions_cache($_SESSION['user_id']);
}
elseif (isset($_SESSION['username']))
{

View File

@@ -125,7 +125,8 @@ function print_graph_popup($graph_array)
function permissions_cache($user_id) {
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)) {
@@ -135,9 +136,26 @@ function permissions_cache($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 $_SESSION; global $permissions;
if ($_SESSION['userlevel'] >= "5") {
$allowed = TRUE;
} elseif ( $permissions['bill'][$bill_id]) {
$allowed = TRUE;
} else {
$allowed = FALSE;
}
return $allowed;
}
function interfacepermitted($interface_id, $device_id = NULL)
{
global $_SESSION; global $permissions;

View File

@@ -0,0 +1,17 @@
<?php
### Authorises bill viewing and sets $ports as reference to mysql query containing ports for this bill
if(is_numeric($_GET['id']) && bill_permitted($_GET['id']))
{
$ports = mysql_query("SELECT * FROM `bill_ports` AS B, `ports` AS P, `devices` AS D
WHERE B.bill_id = '".mres($_GET['id'])."' AND P.interface_id = B.port_id
AND D.device_id = P.device_id");
} else {
echo("Unauthorised");
exit;
}
?>

View File

@@ -0,0 +1,28 @@
<?php
## Generate a list of ports and then call the multi_bits grapher to generate from the list
$i=0;
while($port = mysql_fetch_array($ports)) {
if(is_file($config['rrd_dir'] . "/" . $port['hostname'] . "/" . safename($port['ifIndex'] . ".rrd"))) {
$rrd_list[$i]['filename'] = $config['rrd_dir'] . "/" . $port['hostname'] . "/" . safename($port['ifIndex'] . ".rrd");
$rrd_list[$i]['descr'] = $port['ifDescr'];
$i++;
}
}
$units='bps';
$total_units='B';
$colours_in='greens';
$multiplier = "8";
$colours_out = 'blues';
$nototal = 1;
$rra_in = "INOCTETS";
$rra_out = "OUTOCTETS";
include ("includes/graphs/generic_multi_bits_separated.inc.php");
?>