Beispiel #1
0
/**
 * Print subnets structure
 */
function printToolsSubnets($subnets, $custom)
{
    $html = array();
    $rootId = 0;
    # root is 0
    # remove all not permitted!
    foreach ($subnets as $k => $s) {
        $permission = checkSubnetPermission($s['id']);
        if ($permission == "0") {
            unset($subnets[$k]);
        }
    }
    if (sizeof($subnets) > 0) {
        foreach ($subnets as $item) {
            $children[$item['masterSubnetId']][] = $item;
        }
    }
    # loop will be false if the root has no children (i.e., an empty menu!)
    $loop = !empty($children[$rootId]);
    # initializing $parent as the root
    $parent = $rootId;
    $parent_stack = array();
    # display selected subnet as opened
    if (isset($_GET['subnetId'])) {
        $allParents = getAllParents($_GET['subnetId']);
    }
    # return table content (tr and td's)
    while ($loop && (($option = each($children[$parent])) || $parent > $rootId)) {
        # repeat
        $repeat = str_repeat(" - ", count($parent_stack));
        # dashes
        if (count($parent_stack) == 0) {
            $dash = "";
        } else {
            $dash = "-";
        }
        if (count($parent_stack) == 0) {
            $margin = "0px";
            $padding = "0px";
        } else {
            # padding
            $padding = "10px";
            # margin
            $margin = count($parent_stack) * 10 - 10;
            $margin = $margin * 2;
            $margin = $margin . "px";
        }
        # count levels
        $count = count($parent_stack) + 1;
        # get subnet details
        # get VLAN
        $vlan = subnetGetVLANdetailsById($option['value']['vlanId']);
        $vlan = $vlan['number'];
        if (empty($vlan) || $vlan == "0") {
            $vlan = "";
        }
        # no VLAN
        # description
        if (strlen($option['value']['description']) == 0) {
            $description = "/";
        } else {
            $description = $option['value']['description'];
        }
        # description
        # requests
        if ($option['value']['allowRequests'] == 1) {
            $requests = "<i class='fa fa-gray fa-check'></i>";
        } else {
            $requests = "";
        }
        # request disabled
        # hosts check
        if ($option['value']['pingSubnet'] == 1) {
            $pCheck = "<i class='fa fa-gray fa-check'></i>";
        } else {
            $pCheck = "";
        }
        # ping check disabled
        # print table line
        if (strlen($option['value']['subnet']) > 0) {
            $html[] = "<tr>";
            # folder
            if ($option['value']['isFolder'] == 1) {
                $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-sfolder fa-folder-open'></i> <a href='" . create_link("folder", $option['value']['sectionId'], $option['value']['id']) . "'>{$description}</a></td>";
                $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-sfolder fa-folder-open'></i> {$description}</td>";
            } else {
                if ($count == 1) {
                    $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-folder-open-o'></i><a href='" . create_link("subnets", $option['value']['sectionId'], $option['value']['id']) . "'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                    $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-folder-open-o'></i> {$description}</td>";
                } else {
                    # last?
                    if (!empty($children[$option['value']['id']])) {
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-folder-open-o'></i><a href='" . create_link("subnets", $option['value']['sectionId'], $option['value']['id']) . "'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-folder-open-o'></i> {$description}</td>";
                    } else {
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-angle-right'></i><a href='" . create_link("subnets", $option['value']['sectionId'], $option['value']['id']) . "'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-angle-right'></i> {$description}</td>";
                    }
                }
            }
            //vlan
            $html[] = "\t<td>{$vlan}</td>";
            //masterSubnet
            if ($option['value']['masterSubnetId'] == 0 || empty($option['value']['masterSubnetId'])) {
                $masterSubnet = true;
            } else {
                $masterSubnet = false;
            }
            if ($masterSubnet) {
                $html[] = '	<td>/</td>' . "\n";
            } else {
                $master = getSubnetDetailsById($option['value']['masterSubnetId']);
                if ($master['isFolder']) {
                    $html[] = "\t<td><i class='fa fa-gray fa-folder-open-o'></i> <a href='" . create_link("subnets", $option['value']['sectionId'], $master['id']) . "'>{$master['description']}</a></td>" . "\n";
                } else {
                    $html[] = "\t<td><a href='" . create_link("folder", $option['value']['sectionId'], $master['id']) . "'>" . transform2long($master['subnet']) . '/' . $master['mask'] . '</a></td>' . "\n";
                }
            }
            //used , free
            if ($option['value']['isFolder'] == 1) {
                $html[] = '<td class="hidden-xs hidden-sm"></td>' . "\n";
            } elseif (!$masterSubnet || !subnetContainsSlaves($option['value']['id'])) {
                $ipCount = countIpAddressesBySubnetId($option['value']['id']);
                $calculate = calculateSubnetDetails(gmp_strval($ipCount), $option['value']['mask'], $option['value']['subnet']);
                $html[] = ' <td class="used hidden-xs hidden-sm">' . reformatNumber($calculate['used']) . '/' . reformatNumber($calculate['maxhosts']) . ' (' . reformatNumber($calculate['freehosts_percent']) . ' %)</td>';
            } else {
                $html[] = '<td class="hidden-xs hidden-sm"></td>' . "\n";
            }
            //requests
            $html[] = "\t<td class='hidden-xs hidden-sm'>{$requests}</td>";
            $html[] = "\t<td class='hidden-xs hidden-sm'>{$pCheck}</td>";
            //custom
            if (sizeof($custom) > 0) {
                foreach ($custom as $field) {
                    $html[] = "<td class='hidden-xs hidden-sm hidden-md'>";
                    //booleans
                    if ($field['type'] == "tinyint(1)") {
                        if ($option['value'][$field['name']] == "0") {
                            $html[] = _("No");
                        } elseif ($option['value'][$field['name']] == "1") {
                            $html[] = _("Yes");
                        }
                    } elseif ($field['type'] == "text") {
                        if (strlen($option['value'][$field['name']]) > 0) {
                            $html[] = "<i class='fa fa-gray fa-comment' rel='tooltip' data-container='body' data-html='true' title='" . str_replace("\n", "<br>", $option['value'][$field['name']]) . "'>";
                        } else {
                            $html[] = "";
                        }
                    } else {
                        $html[] = $option['value'][$field['name']];
                    }
                    $html[] = "</td>";
                }
            }
            $html[] = "</tr>";
        }
        if ($option === false) {
            $parent = array_pop($parent_stack);
        } elseif (!empty($children[$option['value']['id']])) {
            array_push($parent_stack, $option['value']['masterSubnetId']);
            $parent = $option['value']['id'];
        } else {
        }
    }
    return implode("\n", $html);
}
/*
 * Discover new hosts with ping
 *******************************/
/* required functions */
require_once '../../../functions/functions.php';
/* verify that user is logged in */
isUserAuthenticated(true);
/* filter input */
$_POST = filter_user_input($_POST, true, true, false);
/* subnet Id must be a integer */
if (!is_numeric($_POST['subnetId']) || $_POST['subnetId'] == 0) {
    die("<div class='alert alert-danger'>Invalid subnetId!</div>");
}
/* verify that user has write permissions for subnet */
$subnetPerm = checkSubnetPermission($_POST['subnetId']);
if ($subnetPerm < 2) {
    die('<div class="alert alert-danger">' . _('You do not have permissions to modify hosts in this subnet') . '!</div>');
}
# verify post
CheckReferrer();
# ok, lets get results form post array!
foreach ($_POST as $key => $line) {
    // IP address
    if (substr($key, 0, 2) == "ip") {
        $res[substr($key, 2)]['ip_addr'] = $line;
    }
    // description
    if (substr($key, 0, 11) == "description") {
        $res[substr($key, 11)]['description'] = $line;
    }
/**
 * Print subnets structure
 */
function printSubnets($subnets, $actions = true, $vrf = "0", $custom = array())
{
    $html = array();
    $rootId = 0;
    # root is 0
    if (sizeof($subnets) > 0) {
        foreach ($subnets as $item) {
            $children[$item['masterSubnetId']][] = $item;
        }
    }
    # loop will be false if the root has no children (i.e., an empty menu!)
    $loop = !empty($children[$rootId]);
    # initializing $parent as the root
    $parent = $rootId;
    $parent_stack = array();
    # display selected subnet as opened
    if (isset($_REQUEST['subnetId'])) {
        $allParents = getAllParents($_REQUEST['subnetId']);
    }
    # return table content (tr and td's)
    while ($loop && (($option = each($children[$parent])) || $parent > $rootId)) {
        # repeat
        $repeat = str_repeat(" - ", count($parent_stack));
        # dashes
        if (count($parent_stack) == 0) {
            $dash = "";
        } else {
            $dash = "-";
        }
        if (count($parent_stack) == 0) {
            $margin = "0px";
            $padding = "0px";
        } else {
            # padding
            $padding = "10px";
            # margin
            $margin = count($parent_stack) * 10 - 10;
            $margin = $margin * 2;
            $margin = $margin . "px";
        }
        # count levels
        $count = count($parent_stack) + 1;
        # get subnet details
        # get VLAN
        $vlan = subnetGetVLANdetailsById($option['value']['vlanId']);
        $vlan = $vlan['number'];
        if (empty($vlan) || $vlan == "0") {
            $vlan = "";
        }
        # no VLAN
        # description
        if (strlen($option['value']['description']) == 0) {
            $description = "/";
        } else {
            $description = $option['value']['description'];
        }
        # description
        # requests
        if ($option['value']['allowRequests'] == 1) {
            $requests = "<i class='fa fa-gray fa-check'></i>";
        } else {
            $requests = "";
        }
        # request disabled
        # hosts check
        if ($option['value']['pingSubnet'] == 1) {
            $pCheck = "<i class='fa fa-gray fa-check'></i>";
        } else {
            $pCheck = "";
        }
        # ping check disabled
        #vrf
        if ($vrf == "1") {
            # get VRF details
            if ($option['value']['vrfId'] != "0" && $option['value']['vrfId'] != "NULL") {
                $vrfTmp = getVRFDetailsById($option['value']['vrfId']);
                $vrfText = $vrfTmp['name'];
            } else {
                $vrfText = "";
            }
        }
        # print table line
        if (strlen($option['value']['subnet']) > 0) {
            // verify permission
            $permission = checkSubnetPermission($option['value']['id']);
            // print item
            if ($permission != 0) {
                $html[] = "<tr>";
                # which level?
                if ($count == 1) {
                    # is folder?
                    if ($option['value']['isFolder'] == 1) {
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-sfolder fa-pad-right-3 fa-folder-open'></i> <a href='folder/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'> {$description}</a></td>";
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-sfolder fa-pad-right-3 fa-folder-open'></i>  {$description}</td>";
                    } else {
                        # last?
                        if (!empty($children[$option['value']['id']])) {
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open-o'></i><a href='subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open-o'></i> {$description}</td>";
                        } else {
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-angle-right'></i><a href='subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-angle-right'></i> {$description}</td>";
                        }
                    }
                } else {
                    # is folder?
                    if ($option['value']['isFolder'] == 1) {
                        # last?
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open'></i> <a href='folder/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'> {$description}</a></td>";
                        $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open'></i> {$description}</td>";
                    } else {
                        # last?
                        if (!empty($children[$option['value']['id']])) {
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open-o'></i> <a href='subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-folder-open-o'></i> {$description}</td>";
                        } else {
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-angle-right'></i> <a href='subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                            $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><i class='fa fa-gray fa-pad-right-3 fa-angle-right'></i> {$description}</td>";
                        }
                    }
                }
                $html[] = "\t<td>{$vlan}</td>";
                #vrf
                if ($vrf == "1") {
                    $html[] = "\t<td class='hidden-xs hidden-sm'>{$vrfText}</td>";
                }
                $html[] = "\t<td class='hidden-xs hidden-sm'>{$requests}</td>";
                $html[] = "\t<td class='hidden-xs hidden-sm'>{$pCheck}</td>";
                # custom
                if (sizeof($custom) > 0) {
                    foreach ($custom as $field) {
                        $html[] = "\t<td class='hidden-xs hidden-sm'>" . $option['value'][$field['name']] . "</td>";
                    }
                }
                if ($actions) {
                    $html[] = "\t<td class='actions' style='padding:0px;'>";
                    $html[] = "\t<div class='btn-group'>";
                    if ($option['value']['isFolder'] == 1) {
                        $html[] = "\t\t<button class='btn btn-xs btn-default add_folder'     data-action='edit'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-pencil'></i></button>";
                        $html[] = "\t\t<button class='btn btn-xs btn-default showSubnetPerm' data-action='show'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-tasks'></i></button>";
                        $html[] = "\t\t<button class='btn btn-xs btn-default add_folder'     data-action='delete' data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-times'></i></button>";
                    } else {
                        $html[] = "\t\t<button class='btn btn-xs btn-default editSubnet'     data-action='edit'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-pencil'></i></button>";
                        $html[] = "\t\t<button class='btn btn-xs btn-default showSubnetPerm' data-action='show'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-tasks'></i></button>";
                        $html[] = "\t\t<button class='btn btn-xs btn-default editSubnet'     data-action='delete' data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='fa fa-gray fa-times'></i></button>";
                    }
                    $html[] = "\t</div>";
                    $html[] = "\t</td>";
                }
                $html[] = "</tr>";
            }
        }
        if ($option === false) {
            $parent = array_pop($parent_stack);
        } elseif (!empty($children[$option['value']['id']])) {
            array_push($parent_stack, $option['value']['masterSubnetId']);
            $parent = $option['value']['id'];
        } else {
        }
    }
    return implode("\n", $html);
}
<?php 
# only print if some hosts exist
if (sizeof($subnetHost) > 0) {
    ?>
<script type="text/javascript">
$(function () {
    
    var data = [
    <?php 
    if (sizeof($subnetHost) > 0) {
        $m = 0;
        foreach ($subnetHost as $subnet) {
            if ($m < $slimit) {
                # verify user access
                $sp = checkSubnetPermission($subnet['id']);
                if ($sp != "0") {
                    $subnet['subnet'] = long2ip($subnet['subnet']);
                    $subnet['descriptionLong'] = $subnet['description'];
                    # set percentage because of localisation
                    $subnet['percentage'] = str_replace(",", ".", $subnet['percentage']);
                    $subnet['percentage'] = $subnet['percentage'];
                    # odd/even if more than 5 items
                    if (sizeof($subnetHost) > 5) {
                        if ($m & 1) {
                            print "['|<br>" . addslashes($subnet[description]) . "', {$subnet['percentage']}, '" . addslashes($subnet[descriptionLong]) . " ({$subnet['subnet']}/{$subnet['mask']})'],";
                        } else {
                            print "['" . addslashes($subnet[description]) . "', {$subnet['percentage']}, '" . addslashes($subnet[descriptionLong]) . " ({$subnet['subnet']}/{$subnet['mask']})'],";
                        }
                    } else {
                        print "['" . addslashes($subnet[description]) . "', {$subnet['percentage']}, '" . addslashes($subnet[descriptionLong]) . " ({$subnet['subnet']}/{$subnet['mask']})'],";
Beispiel #5
0
/* include required scripts */
require_once '../../functions/functions.php';
/* check referer and requested with */
CheckReferrer();
/* get posted values */
$subnetId = $_POST['subnetId'];
$action = $_POST['action'];
$id = $_POST['id'];
/* set subnet -> for adding new only */
$subnet = getSubnetDetailsById($subnetId);
$subnet2 = $subnet;
$subnet = transform2long($subnet['subnet']) . "/" . $subnet['mask'];
/* verify that user is logged in */
isUserAuthenticated(false);
/* verify that user has write access */
$subnetPerm = checkSubnetPermission($subnetId);
if ($subnetPerm < 2) {
    print '<div class="pHeader">Edit IP address</div>';
    print '<div class="pContent">';
    print '<div class="alert alert-danger">' . _('Cannot edit IP address details') . '! <br>' . _('You do not have write access for this network') . '!</div>';
    print '</div>';
    print '<div class="pFooter"><button class="btn btn-sm btn-default hidePopups">' . _('Cancel') . '</button></div>';
    die;
}
/**
 *
 * if action is not add then fetch current details
 *
 * otherwise format the $ip field
 *
 */
<?php

/*
 * Print resize subnet
 *********************/
/* required functions */
require_once '../../functions/functions.php';
/* verify that user has write permissions for subnet */
$subnetPerm = checkSubnetPermission($_REQUEST['subnetId']);
if ($subnetPerm < 3) {
    die('<div class="alert alert-danger">' . _('You do not have permissions to resize subnet') . '!</div>');
}
/* verify post */
CheckReferrer();
# get old subnet details
$subnetOld = getSubnetDetailsById($_POST['subnetId']);
# get all site settings
$settings = getAllSettings();
/* get section details */
$section = getSectionDetailsById($subnetOld['sectionId']);
/* 
 * now we need to check each host against new subnet
 */
$ipaddresses = getIpAddressesBySubnetIdSort($_POST['subnetId'], "ip_addr", "asc");
# get all IP addresses
foreach ($ipaddresses as $ip) {
    # check against new subnet
    $error = VerifyIpAddress(transform2long($ip['ip_addr']), transform2long($subnetOld['subnet']) . "/" . $_POST['newMask']);
    if (!$error) {
    } else {
        $errors[] = $error;
Beispiel #7
0
 print "</tbody>";
 # collapsed div with details
 print "<tbody id='content-switch-{$m}'>";
 # headers
 print "<tr>";
 print "\t<th>" . _('IP address') . "</th>";
 print "\t<th>" . _('Port') . "</th>";
 print "\t<th>" . _('Subnet') . "</th>";
 print "\t<th colspan='2'>" . _('Description') . "</th>";
 print "\t<th>" . _('Hostname') . "</th>";
 print "\t<th>" . _('Owner') . "</th>";
 print "</tr>";
 # IP addresses
 foreach ($ipaddresses as $ip) {
     # check permission
     $permission = checkSubnetPermission($ip['subnetId']);
     if ($permission != "0") {
         # get subnet details for belonging IP
         $subnet = getSubnetDetails($ip['subnetId']);
         # get section details
         $section = getSectionDetailsById($subnet['sectionId']);
         # print
         print "<tr>";
         print "\t<td class='ip'>" . transform2long($ip['ip_addr']) . "/{$subnet['mask']}</td>";
         print "\t<td class='port'>{$ip['port']}</td>";
         print "\t<td class='subnet'><a href='/subnets/{$section['id']}/{$subnet['id']}/'>{$subnet['description']}</a></td>";
         print "\t<td class='description'>{$ip['description']}</td>";
         # print info button for hover
         print "<td class='note'>";
         if (!empty($ip['note'])) {
             $ip['note'] = str_replace("\n", "<br>", $ip['note']);
Beispiel #8
0
     $change = 'change';
 }
 /* get section details */
 $section = getSectionDetailsById($vlan['sectionId']);
 /* check if it is master */
 if (!isset($vlan['masterSubnetId'])) {
     $masterSubnet = true;
 } else {
     if ($vlan['masterSubnetId'] == 0 || empty($vlan['masterSubnetId'])) {
         $masterSubnet = true;
     } else {
         $masterSubnet = false;
     }
 }
 # check permission
 $permission = checkSubnetPermission($vlan['subnetId']);
 if ($permission != "0") {
     print "<tr class='{$change}'>";
     /* print first 3 only if change happened! */
     if ($change == "change") {
         print ' <td>' . $vlan['number'] . '</td>' . "\n";
         print ' <td>' . $vlan['name'] . '</td>' . "\n";
         print ' <td>' . $vlan['description'] . '</td>' . "\n";
     } else {
         print '<td></td>';
         print '<td></td>';
         print '<td></td>';
     }
     if ($vlan['subnetId'] != null) {
         # subnet
         print " <td><a href='subnets/{$section['id']}/{$vlan['subnetId']}/'>" . transform2long($vlan['subnet']) . "/{$vlan['mask']}</a></td>";
 $calculate = calculateSubnetDetails(gmp_strval($ipCount), $slave['mask'], $slave['subnet']);
 print ' <td class="small hidden-xs hidden-sm">' . $calculate['used'] . '/' . $calculate['maxhosts'] . '</td>' . "\n";
 print '	<td class="small hidden-xs hidden-sm">' . $calculate['freehosts_percent'] . '</td>';
 # add to sum if IPv4
 if (IdentifyAddress($slave['subnet']) == "IPv4") {
     $usedSum = $usedSum + $calculate['used'];
     $allSum = $allSum + $calculate['maxhosts'];
 }
 # allow requests
 if ($slave['allowRequests'] == 1) {
     print '<td class="allowRequests small hidden-xs hidden-sm"><i class="fa fa-gray fa-check"></i></td>';
 } else {
     print '<td class="allowRequests small hidden-xs hidden-sm"><i class="fa fa-gray fa-check"></i></td>';
 }
 # edit
 $subnetPerm = checkSubnetPermission($slave['id']);
 if ($subnetPerm == 3) {
     print "\t<td class='actions'>";
     print "\t<div class='btn-group'>";
     print "\t\t<button class='btn btn-xs btn-default editSubnet'     data-action='edit'   data-subnetid='" . $slave['id'] . "'  data-sectionid='" . $slave['sectionId'] . "'><i class='fa fa-gray fa fa-pencil'></i></button>";
     print "\t\t<button class='btn btn-xs btn-default showSubnetPerm' data-action='show'   data-subnetid='" . $slave['id'] . "'  data-sectionid='" . $slave['sectionId'] . "'><i class='fa fa-gray fa fa-tasks'></i></button>";
     print "\t\t<button class='btn btn-xs btn-default editSubnet'     data-action='delete' data-subnetid='" . $slave['id'] . "'  data-sectionid='" . $slave['sectionId'] . "'><i class='fa fa-gray fa fa-times'></i></button>";
     print "\t</div>";
     print " </td>";
 } else {
     print "\t<td class='actions'>";
     print "\t<div class='btn-group'>";
     print "\t\t<button class='btn btn-xs btn-default disabled'><i class='fa fa-gray fa fa-pencil'></i></button>";
     print "\t\t<button class='btn btn-xs btn-default disabled'><i class='fa fa-gray fa fa-tasks'></i></button>";
     print "\t\t<button class='btn btn-xs btn-default disabled'><i class='fa fa-gray fa fa-times'></i></button>";
     print "\t</div>";
Beispiel #10
0
    die('<div class="alert alert-danger">' . _("Invalid ID") . '</div>');
}
# get IP address details
$ip = getIpAddrDetailsById($_GET['ipaddrid']);
$subnet = getSubnetDetailsById($_GET['subnetId']);
$section = getSectionDetailsById($_GET['section']);
# get all selected fields for IP print
$setFieldsTemp = getSelectedIPaddrFields();
// format them to array!
$setFields = explode(";", $setFieldsTemp);
# get all custom fields
$myFields = getCustomFields('ipaddresses');
# set ping statuses
$statuses = explode(";", $settings['pingStatus']);
# permissions
$permission = checkSubnetPermission($_GET['subnetId']);
# section permissions
$permissionsSection = checkSectionPermission($_GET['section']);
# if 0 die
if ($permission == "0") {
    die("<div class='alert alert-danger'>" . _('You do not have permission to access this network') . "!</div>");
}
# reformat empty fields
foreach ($ip as $k => $i) {
    if (strlen($i) == 0) {
        $ip[$k] = "/";
    }
}
#header
print "<h4>" . _('IP address details') . "</h4><hr>";
# back
Beispiel #11
0
/**
 * Print subnets structure
 */
function printSubnets($subnets, $actions = true, $vrf = "0", $custom = array())
{
    $html = array();
    $rootId = 0;
    # root is 0
    if (sizeof($subnets) > 0) {
        foreach ($subnets as $item) {
            $children[$item['masterSubnetId']][] = $item;
        }
    }
    # loop will be false if the root has no children (i.e., an empty menu!)
    $loop = !empty($children[$rootId]);
    # initializing $parent as the root
    $parent = $rootId;
    $parent_stack = array();
    # display selected subnet as opened
    if (isset($_REQUEST['subnetId'])) {
        $allParents = getAllParents($_REQUEST['subnetId']);
    }
    # return table content (tr and td's)
    while ($loop && (($option = each($children[$parent])) || $parent > $rootId)) {
        # repeat
        $repeat = str_repeat(" - ", count($parent_stack));
        # dashes
        if (count($parent_stack) == 0) {
            $dash = "";
        } else {
            $dash = "-";
        }
        if (count($parent_stack) == 0) {
            $margin = "0px";
            $padding = "0px";
        } else {
            # padding
            $padding = "10px";
            # margin
            $margin = count($parent_stack) * 10 - 10;
            $margin = $margin * 2;
            $margin = $margin . "px";
        }
        # count levels
        $count = count($parent_stack) + 1;
        # get subnet details
        # get VLAN
        $vlan = subnetGetVLANdetailsById($option['value']['vlanId']);
        $vlan = $vlan['number'];
        if (empty($vlan) || $vlan == "0") {
            $vlan = "";
        }
        # no VLAN
        # description
        if (strlen($option['value']['description']) == 0) {
            $description = "/";
        } else {
            $description = $option['value']['description'];
        }
        # description
        # requests
        if ($option['value']['allowRequests'] == 1) {
            $requests = _("enabled");
        } else {
            $requests = "";
        }
        # request disabled
        # hosts check
        if ($option['value']['pingSubnet'] == 1) {
            $pCheck = _("enabled");
        } else {
            $pCheck = "";
        }
        # ping check disabled
        #vrf
        if ($vrf == "1") {
            # get VRF details
            if ($option['value']['vrfId'] != "0" && $option['value']['vrfId'] != "NULL") {
                $vrfTmp = getVRFDetailsById($option['value']['vrfId']);
                $vrfText = $vrfTmp['name'];
            } else {
                $vrfText = "";
            }
        }
        // <eNovance>
        // count the number of free and offline hosts
        $ipaddresses = getIpAddressesBySubnetId($option['value']['id']);
        $reservedHosts = 0;
        foreach ($ipaddresses as $ip) {
            if ($ip['state'] == "2") {
                $reservedHosts += 1;
            }
        }
        $subnetDetails = calculateSubnetDetails(count($ipaddresses), $option['value']['mask'], $option['value']['subnet']);
        $freeHosts = $subnetDetails['freehosts'];
        // </eNovance>
        # print table line
        if (strlen($option['value']['subnet']) > 0) {
            // verify permission
            $permission = checkSubnetPermission($option['value']['id']);
            // print item
            if ($permission != 0) {
                $html[] = "<tr>";
                $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span><a href='subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/'>  " . transform2long($option['value']['subnet']) . "/" . $option['value']['mask'] . "</a></td>";
                $html[] = "\t<td class='level{$count}'><span class='structure' style='padding-left:{$padding}; margin-left:{$margin};'></span> {$description}</td>";
                $html[] = "\t<td>{$vlan}</td>";
                #vrf
                if ($vrf == "1") {
                    $html[] = "\t<td>{$vrfText}</td>";
                }
                // <eNovance>
                // Removed $requests and $pCheck since it was not necessary for us
                // </eNovance>
                # custom
                if (sizeof($custom) > 0) {
                    foreach ($custom as $field) {
                        $html[] = "\t<td>" . $option['value'][$field['name']] . "</td>";
                    }
                }
                // <eNovance>
                // Set the 'reserved' and 'free' hosts columns' value
                $html[] = "<td>{$reservedHosts}</td>";
                if ($subnetDetails['freehosts_percent'] <= 5) {
                    $html[] = "<td><a href=\"subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/\" class=\"SubnetFull\">{$freeHosts}</a></td>";
                } elseif ($subnetDetails['freehosts_percent'] <= 20) {
                    $html[] = "<td><a href=\"subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/\" class=\"SubnetAlmostFull\">{$freeHosts}</a></td>";
                } else {
                    $html[] = "<td><a href=\"subnets/" . $option['value']['sectionId'] . "/" . $option['value']['id'] . "/\" class=\"SubnetNotFull\">{$freeHosts}</a></td>";
                }
                // </eNovance>
                if ($actions) {
                    $html[] = "\t<td class='actions' style='padding:0px;'>";
                    $html[] = "\t<div class='btn-group'>";
                    $html[] = "\t\t<button class='btn btn-mini editSubnet'     data-action='edit'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='icon-gray icon-pencil'></i></button>";
                    $html[] = "\t\t<button class='btn btn-mini showSubnetPerm' data-action='show'   data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='icon-gray icon-tasks'></i></button>";
                    $html[] = "\t\t<button class='btn btn-mini editSubnet'     data-action='delete' data-subnetid='" . $option['value']['id'] . "'  data-sectionid='" . $option['value']['sectionId'] . "'><i class='icon-gray icon-remove'></i></button>";
                    $html[] = "\t</div>";
                    $html[] = "\t</td>";
                }
                $html[] = "</tr>";
            }
        }
        if ($option === false) {
            $parent = array_pop($parent_stack);
        } elseif (!empty($children[$option['value']['id']])) {
            array_push($parent_stack, $option['value']['masterSubnetId']);
            $parent = $option['value']['id'];
        } else {
        }
    }
    return implode("\n", $html);
}
Beispiel #12
0
     $change = 'change';
 }
 /* get section details */
 $section = getSectionDetailsById($vlan['sectionId']);
 /* check if it is master */
 if (!isset($vlan['masterSubnetId'])) {
     $masterSubnet = true;
 } else {
     if ($vlan['masterSubnetId'] == 0 || empty($vlan['masterSubnetId'])) {
         $masterSubnet = true;
     } else {
         $masterSubnet = false;
     }
 }
 # check permission
 $permission = checkSubnetPermission($vlan['id']);
 if ($permission != "0") {
     print "<tr class='{$change}'>";
     /* print first 3 only if change happened! */
     if ($change == "change") {
         print ' <td>' . $vlan['number'] . '</td>' . "\n";
         print ' <td>' . $vlan['name'] . '</td>' . "\n";
         print ' <td>' . $vlan['description'] . '</td>' . "\n";
     } else {
         print '<td></td>';
         print '<td></td>';
         print '<td></td>';
     }
     if ($vlan['subnetId'] != null) {
         # subnet
         print " <td><a href='subnets/{$section['id']}/{$vlan['subnetId']}/'>" . transform2long($vlan['subnet']) . "/{$vlan['mask']}</a></td>";
Beispiel #13
0
        }
        # actions
        print '<th class="actions"></th>';
        ?>
</tr>

<!-- IP addresses -->
<?php 
        /* if no result print nothing found */
        if (sizeof($result) > 0) {
            $m = 0;
            //for section change
            /* print content */
            foreach ($result as $line) {
                # check permission
                $permission = checkSubnetPermission($line['subnetId']);
                if ($permission != "0") {
                    //get the Subnet details
                    $subnet = getSubnetDetailsById($line['subnetId']);
                    //get vlan number
                    $vlan = subnetGetVLANDetailsById($subnet['vlanId']);
                    //get section
                    $section = getSectionDetailsById($subnet['sectionId']);
                    //detect section change and print headers
                    if ($result[$m]['subnetId'] != $result[$m - 1]['subnetId']) {
                        print '<tr>' . "\n";
                        print '	<th colspan="' . $colSpan . '">' . $section['name'] . ' :: <a href="' . create_link("subnets", $subnet['sectionId'], $subnet['id']) . '" style="font-weight:300">' . $subnet['description'] . ' (' . transform2long($subnet['subnet']) . '/' . $subnet['mask'] . ')</a></th>' . "\n";
                        print '</tr>';
                    }
                    $m++;
                    $stateClass = "";