Compare commits
No commits in common. '78b97c50948e3cc18057b7bd9a19b985fd4f7445' and 'f0992b4b6482aaeed852a11963e94a446bf62f43' have entirely different histories.
78b97c5094
...
f0992b4b64
@ -0,0 +1,36 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if((isset($_GET['assetclass_id'])) ? $assetclass_id = sanitize($_GET['assetclass_id']) : $assetclass_id = ""); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclass_id, assetclass_name |
||||||
|
FROM assetclass |
||||||
|
ORDER BY assetclass_name"; |
||||||
|
$sth = $dbh->query($sql); |
||||||
|
|
||||||
|
$types = db_load_enum('asset','asset_type'); |
||||||
|
|
||||||
|
$smarty->assign("type_ids", $types); |
||||||
|
$smarty->assign("type_names", $types); |
||||||
|
$smarty->assign("type_selected", $types[0]); |
||||||
|
|
||||||
|
$assetclass_options = array(); |
||||||
|
foreach ($sth->fetchAll(PDO::FETCH_NUM) as $rec) { |
||||||
|
$assetclass_options[$rec[0]] = $rec[1]; |
||||||
|
} |
||||||
|
|
||||||
|
$smarty->assign("assetclass_options", $assetclass_options); |
||||||
|
$smarty->display("assetadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,20 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if((isset($_GET['assetclassgroup_id'])) ? $assetclassgroup_id = sanitize($_GET['assetclassgroup_id']) : $assetclassgroup_id = ""); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->assign("assetclassgroup_options", db_get_options_assetclassgroup()); |
||||||
|
$smarty->display("assetclassadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,26 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclass_id = sanitize($_GET['assetclass_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclass_id AS id, assetclass_name AS name |
||||||
|
FROM assetclass |
||||||
|
WHERE assetclass_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclass_id]); |
||||||
|
$smarty->assign("assetclass", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("assetclassdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclass_id = sanitize($_GET['assetclass_id']); |
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclass_id AS id, assetclass_name AS name, |
||||||
|
assetclass_description AS description, |
||||||
|
assetclassgroup_id AS group_id |
||||||
|
FROM assetclass |
||||||
|
WHERE assetclass_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclass_id]); |
||||||
|
|
||||||
|
$smarty->assign("assetclass", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->assign("assetclassgroup_options", db_get_options_assetclassgroup()); |
||||||
|
|
||||||
|
$smarty->display("assetclassedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,18 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$smarty->assign("scripts", 'jscolor.js'); |
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->display("assetclassgroupadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,26 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclassgroup_id = sanitize($_GET['assetclassgroup_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclassgroup_id AS id, assetclassgroup_name AS name |
||||||
|
FROM assetclassgroup |
||||||
|
WHERE assetclassgroup_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclassgroup_id]); |
||||||
|
$smarty->assign("assetclassgroup", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("assetclassgroupdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclassgroup_id = sanitize($_GET['assetclassgroup_id']); |
||||||
|
|
||||||
|
$smarty->assign("scripts", 'jscolor.js'); |
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclassgroup_id AS id, assetclassgroup_name AS name, |
||||||
|
assetclassgroup_color AS color, |
||||||
|
assetclassgroup_description AS description |
||||||
|
FROM assetclassgroup |
||||||
|
WHERE assetclassgroup_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclassgroup_id]); |
||||||
|
|
||||||
|
$smarty->assign("assetclassgroup", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("assetclassgroupedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,37 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclassgroup_id = sanitize($_GET['assetclassgroup_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT assetclassgroup_id AS id, |
||||||
|
assetclassgroup_name AS name, |
||||||
|
assetclassgroup_color AS color, |
||||||
|
assetclassgroup_description AS description |
||||||
|
FROM assetclassgroup |
||||||
|
WHERE assetclassgroup_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclassgroup_id]); |
||||||
|
$smarty->assign("assetclassgroup", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$sql = "SELECT assetclass_id, assetclass_name |
||||||
|
FROM assetclass |
||||||
|
WHERE assetclassgroup_id=? |
||||||
|
ORDER BY assetclass_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclassgroup_id]); |
||||||
|
$smarty->assign("assetclasses", $sth->fetchAll(PDO::FETCH_ASSOC)); |
||||||
|
|
||||||
|
$smarty->display("assetclassgroupview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,37 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$assetclass_id = sanitize($_GET['assetclass_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT a.assetclass_id, a.assetclass_name, g.assetclassgroup_id, |
||||||
|
a.assetclass_description, |
||||||
|
g.assetclassgroup_name, g.assetclassgroup_color |
||||||
|
FROM assetclass AS a LEFT OUTER JOIN assetclassgroup AS g USING (assetclassgroup_id) |
||||||
|
WHERE a.assetclass_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclass_id]); |
||||||
|
$smarty->assign("assetclass", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$sql = "SELECT asset_id, asset_name, |
||||||
|
CONCAT(LEFT(asset_info, 80), IF(CHAR_LENGTH(asset_info)>80,'...','')) AS asset_info |
||||||
|
FROM asset |
||||||
|
WHERE assetclass_id=? |
||||||
|
ORDER BY asset_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$assetclass_id]); |
||||||
|
$smarty->assign("assets", $sth->fetchAll(PDO::FETCH_ASSOC)); |
||||||
|
|
||||||
|
$smarty->display("assetclassview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,31 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$asset_id = sanitize($_GET['asset_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// asset to delete |
||||||
|
$sth = $dbh->prepare("SELECT asset_name FROM asset WHERE asset_id=?"); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
$smarty->assign("asset_id", $asset_id); |
||||||
|
$smarty->assign("asset_name", $sth->fetchColumn()); |
||||||
|
|
||||||
|
// nodes to delete |
||||||
|
$sql = "SELECT node_id, node_ip FROM node WHERE asset_id=? ORDER BY INET_ATON(node_ip)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
$smarty->assign("nodes", $sth->fetchAll(PDO::FETCH_ASSOC)); |
||||||
|
|
||||||
|
$smarty->display("assetdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,33 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$asset_id = sanitize($_GET['asset_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT asset_id, asset_name, asset_hostname, asset_info, asset_intf, |
||||||
|
assetclass_id, asset_type |
||||||
|
FROM asset |
||||||
|
WHERE asset_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
$smarty->assign("asset", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// Type selection |
||||||
|
$smarty->assign("type_ids", ['active', 'passive']); |
||||||
|
$smarty->assign("type_names", ['Active', 'Passive']); |
||||||
|
|
||||||
|
$smarty->assign("assetclass_options", db_get_options_assetclass()); |
||||||
|
|
||||||
|
$smarty->display("assetedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,41 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if (isset($_GET['asset_id']) && (!empty($_GET['asset_id']))) { |
||||||
|
$asset_id = sanitize($_GET['asset_id']); |
||||||
|
} else { |
||||||
|
header_location("comments.php?comments=error"); |
||||||
|
} |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT a.asset_id, a.asset_name, a.asset_hostname, a.asset_info, |
||||||
|
a.asset_intf, a.asset_type, c.assetclass_id, c.assetclass_name |
||||||
|
FROM asset AS a LEFT OUTER JOIN assetclass AS c USING (assetclass_id) |
||||||
|
WHERE a.asset_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
$asset = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
$smarty->assign("asset", $asset); |
||||||
|
|
||||||
|
$sql = "SELECT node_id, node_ip, |
||||||
|
CONCAT(LEFT(node_info, 40), IF(CHAR_LENGTH(node_info)>40,'...','')) AS node_info |
||||||
|
FROM node |
||||||
|
WHERE asset_id=? |
||||||
|
ORDER BY INET_ATON(node_ip)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
$smarty->assign("nodes", $sth->fetchAll(PDO::FETCH_ASSOC)); |
||||||
|
|
||||||
|
$smarty->display("assetview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,29 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_ip = sanitize($_GET['node_ip']); |
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
$smarty->assign("node_ip", $node_ip); |
||||||
|
|
||||||
|
$smarty->display("assigniptonode.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,28 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$asset_id = sanitize($_GET['asset_id']); |
||||||
|
$node_ip = sanitize($_GET['node_ip']); |
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->assign("node_ip", $node_ip); |
||||||
|
$smarty->assign("asset_id", $asset_id); |
||||||
|
$smarty->assign("subnet_id", $subnet_id); |
||||||
|
|
||||||
|
$smarty->assign("asset_options", db_get_options_asset()); |
||||||
|
$smarty->assign("subnet_options", db_get_options_subnet()); |
||||||
|
|
||||||
|
$smarty->display("assignnodetoasset.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,22 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
|
||||||
|
$comments = sanitize($_GET['comments']); |
||||||
|
|
||||||
|
$smarty->assign("comments", $lang['lang_comments_' . $comments]); |
||||||
|
|
||||||
|
$smarty->display("comments.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,75 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_parent = sanitize($_GET['location_parent']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
|
||||||
|
// ************* <option value="0">{$lang_option_none}</option> |
||||||
|
|
||||||
|
$sql = "SELECT location_id AS id, location_name AS name, |
||||||
|
location_parent AS parent, location_sort AS sort |
||||||
|
FROM location |
||||||
|
ORDER BY location_parent, location_sort, location_name"; |
||||||
|
$sth = $dbh->query($sql); |
||||||
|
$locations = $sth->fetchAll(); |
||||||
|
|
||||||
|
if (count($locations) > 0) { |
||||||
|
foreach ($locations AS $location) { |
||||||
|
$location_names[$location['id']] = $location['name']; |
||||||
|
$parents[$location['parent']][] = $location['id']; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// look for parents |
||||||
|
// function to look for parents and create a new array for every child |
||||||
|
function location($parents, $parent = 0) { |
||||||
|
foreach ($parents[$parent] as $child) { |
||||||
|
if (isset($parents[$child])) { |
||||||
|
// element has children |
||||||
|
$children[$child] = location($parents, $child); |
||||||
|
} else { |
||||||
|
// no children, set NULL |
||||||
|
$children[$child] = NULL; |
||||||
|
} |
||||||
|
} |
||||||
|
return $children; |
||||||
|
} |
||||||
|
|
||||||
|
// recursive children check to template |
||||||
|
function checkchildren($locations, $level) { |
||||||
|
global $location_options; |
||||||
|
global $location_names; |
||||||
|
global $location_parent; |
||||||
|
|
||||||
|
foreach ($locations as $parent=>$child) { |
||||||
|
$row = str_repeat("- ", $level) . $location_names[$parent]; |
||||||
|
$location_options[$parent] = $row; |
||||||
|
if (isset($child)) { |
||||||
|
checkchildren($child, $level+1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$tree = location($parents); |
||||||
|
|
||||||
|
// create tree option list |
||||||
|
$location_options = array(0 => '-'); |
||||||
|
checkchildren($tree, 0); |
||||||
|
|
||||||
|
$smarty->assign("location_options", $location_options); |
||||||
|
$smarty->assign("location_parent", $location_parent); |
||||||
|
|
||||||
|
$smarty->display("locationadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,24 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT location_id AS id, location_name AS name FROM location WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("locationdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,98 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// location |
||||||
|
$sql = "SELECT location_id AS id, location_name AS name, location_parent AS parent, |
||||||
|
location_info AS info, location_sort AS sort |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$location = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
|
||||||
|
$location_parent = $location->parent; |
||||||
|
|
||||||
|
$smarty->assign("location", $location); |
||||||
|
|
||||||
|
/*$smarty->assign("location_id", $location_id); |
||||||
|
$smarty->assign("location_name", $location[0]['location_name']); |
||||||
|
$smarty->assign("location_info", $location[0]['location_info']); |
||||||
|
$smarty->assign("location_sort", $location[0]['location_sort']); */ |
||||||
|
|
||||||
|
// parent location |
||||||
|
$sql = "SELECT location_id, location_name, location_parent |
||||||
|
FROM location |
||||||
|
WHERE location_id != ? |
||||||
|
ORDER BY location_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
|
||||||
|
$locations = $sth->fetchAll(); |
||||||
|
|
||||||
|
$location_counter = count($locations); |
||||||
|
|
||||||
|
$smarty->assign("location_counter", $location_counter); |
||||||
|
|
||||||
|
// any loactions? |
||||||
|
if ($location_counter>0) { |
||||||
|
foreach($locations AS $location) { |
||||||
|
$location_names[$location['location_id']] = $location['location_name']; |
||||||
|
$parents[$location['location_parent']][] = $location['location_id']; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// look for parents |
||||||
|
// function to look for parents and create a new array for every child |
||||||
|
function location($parents, $parent = 0) { |
||||||
|
// loop array to check |
||||||
|
foreach($parents[$parent] as $child) { |
||||||
|
if(isset($parents[$child])) { |
||||||
|
// element has children |
||||||
|
$children[$child] = location($parents, $child); |
||||||
|
} else { |
||||||
|
// no children, set NULL |
||||||
|
$children[$child] = NULL; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// and again... |
||||||
|
return $children; |
||||||
|
} |
||||||
|
|
||||||
|
// recursive children check to template |
||||||
|
function checkchildren($locations, $level) { |
||||||
|
global $location_options; |
||||||
|
global $location_names; |
||||||
|
global $location_parent; |
||||||
|
|
||||||
|
foreach ($locations as $parent=>$child) { |
||||||
|
$row = str_repeat("- ", $level) . $location_names[$parent]; |
||||||
|
$location_options[$parent] = $row; |
||||||
|
if(isset($child)) { |
||||||
|
checkchildren($child, $level+1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$tree = location($parents); |
||||||
|
$location_options = array(0 => '-'); |
||||||
|
checkchildren($tree, 0); |
||||||
|
$smarty->assign("location_options", $location_options); |
||||||
|
$smarty->assign("location_parent", $location_parent); |
||||||
|
|
||||||
|
$smarty->display("locationedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,28 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT location_id AS id, location_name AS name |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->assign("subnet_options", db_get_options_subnet()); |
||||||
|
|
||||||
|
$smarty->display("locationsubnetadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,44 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// location |
||||||
|
$sql = "SELECT location_id AS id, location_name AS name |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
|
||||||
|
// subnet |
||||||
|
$sql = "SELECT |
||||||
|
s.subnet_id, |
||||||
|
s.subnet_address, |
||||||
|
s.subnet_mask |
||||||
|
FROM |
||||||
|
subnetlocation AS l LEFT JOIN subnet AS s USING (subnet_id) |
||||||
|
WHERE |
||||||
|
l.location_id=? |
||||||
|
ORDER BY |
||||||
|
INET_ATON(s.subnet_address)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
|
||||||
|
$smarty->assign($sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("locationsubnetdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,26 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT location_id AS id, location_name AS name |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("location", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("locationsubnetedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,67 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$location_id = sanitize($_GET['location_id']); |
||||||
|
if ((isset($_GET['id'])) ? $id = sanitize($_GET['id']) : $id = ''); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
|
||||||
|
// base location |
||||||
|
$sql = "SELECT location_id AS id, location_name AS name, |
||||||
|
location_parent AS parent_id, location_info AS info, |
||||||
|
CONCAT('locationview.php?location_id=', location_id) AS url |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$location = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
$smarty->assign("location", $location); |
||||||
|
|
||||||
|
// crumbs |
||||||
|
$crumbs[] = $location; |
||||||
|
$sql = "SELECT location_id AS id, location_name AS name, |
||||||
|
location_parent AS parent_id, |
||||||
|
CONCAT('locationview.php?location_id=', location_id) AS url |
||||||
|
FROM location |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
while ($crumbs[0]->parent_id != 0) { |
||||||
|
$sth->execute([$crumbs[0]->parent_id]); |
||||||
|
$result = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
array_unshift($crumbs, $result); |
||||||
|
} |
||||||
|
$smarty->assign("crumbs", $crumbs); |
||||||
|
|
||||||
|
// sublocations |
||||||
|
$sql = "SELECT location_id AS sublocation_id, location_name AS sublocation_name, |
||||||
|
LEFT(location_info, 40) AS info_short, |
||||||
|
CHAR_LENGTH(location_info) AS info_length |
||||||
|
FROM location |
||||||
|
WHERE location_parent=? |
||||||
|
ORDER BY location_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("sublocations", $sth->fetchAll()); |
||||||
|
|
||||||
|
// subnets |
||||||
|
$sql = "SELECT s.subnet_id, s.subnet_address, s.subnet_mask |
||||||
|
FROM subnet AS s LEFT JOIN subnetlocation AS l USING (subnet_id) |
||||||
|
WHERE l.location_id=? |
||||||
|
ORDER BY INET_ATON(s.subnet_address)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
$smarty->assign("subnets", $sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("locationview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,65 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// node_ext |
||||||
|
$sql = "SELECT node_ip AS node_ip_ext |
||||||
|
FROM node |
||||||
|
WHERE node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
|
||||||
|
$node = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
|
||||||
|
$smarty->assign("node_id_ext", $node_id); |
||||||
|
$smarty->assign("node_ip_ext", $node->node_ip_ext); |
||||||
|
|
||||||
|
// node_int |
||||||
|
$sql = "SELECT |
||||||
|
a.asset_name, |
||||||
|
n.node_id AS node_id_int, |
||||||
|
n.node_ip AS node_ip_int |
||||||
|
FROM |
||||||
|
asset AS a LEFT JOIN node AS n USING (asset_id) |
||||||
|
WHERE |
||||||
|
n.node_id NOT IN ( |
||||||
|
SELECT |
||||||
|
nat_int |
||||||
|
FROM |
||||||
|
nat |
||||||
|
WHERE |
||||||
|
nat_ext=? |
||||||
|
) |
||||||
|
AND n.node_id!=? |
||||||
|
ORDER BY |
||||||
|
INET_ATON(n.node_ip)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id, $node_id]); |
||||||
|
|
||||||
|
$nodes = $sth->fetchAll(); |
||||||
|
|
||||||
|
foreach ($nodes as $rec) { |
||||||
|
$node_options[$rec['node_id_int']] = $rec['node_ip_int'] . '/' . $rec['asset_name']; |
||||||
|
} |
||||||
|
$smarty->assign("node_options", $node_options); |
||||||
|
|
||||||
|
$nat_type_options[1] = $lang['lang_nat_type_1']; |
||||||
|
$nat_type_options[2] = $lang['lang_nat_type_2']; |
||||||
|
$nat_type_options[3] = $lang['lang_nat_type_3']; |
||||||
|
$smarty->assign("nat_type_options", $nat_type_options); |
||||||
|
|
||||||
|
$smarty->display("natadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// node_ext |
||||||
|
$sth = $dbh->prepare("SELECT node_id AS id_ext, node_ip AS ip_ext FROM node WHERE node_id=?"); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
$smarty->assign("node", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// options |
||||||
|
$sql = "SELECT x.nat_id, n.node_ip, a.asset_name |
||||||
|
FROM nat AS x |
||||||
|
LEFT JOIN node AS n ON (x.nat_int=n.node_id) |
||||||
|
LEFT JOIN asset AS a USING (asset_id) |
||||||
|
WHERE x.nat_ext=? |
||||||
|
ORDER BY INET_ATON(n.node_ip)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
$nats = $sth->fetchAll(); |
||||||
|
|
||||||
|
$options = array(); |
||||||
|
foreach ($nats as $rec) { |
||||||
|
$options[$rec['nat_id']] = $rec['node_ip'] . '/' . $rec['asset_name']; |
||||||
|
} |
||||||
|
$smarty->assign("nat_options", $options); |
||||||
|
$smarty->display("natdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,24 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT node_id AS id, node_ip AS ip FROM node WHERE node.node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
$smarty->assign("node", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("natedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,27 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if ((isset($_GET['node_ip'])) ? $node_ip = sanitize($_GET['node_ip']) : $node_ip = ''); |
||||||
|
if ((isset($_GET['subnet_id'])) ? $subnet_id = sanitize($_GET['subnet_id']) : $subnet_id = ''); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->assign("user_dns1suffix", $_SESSION['suser_dns1suffix']); |
||||||
|
$smarty->assign("user_dns2suffix", $_SESSION['suser_dns2suffix']); |
||||||
|
$smarty->assign("node_ip", $node_ip); |
||||||
|
$smarty->assign("subnet_id", $subnet_id); |
||||||
|
|
||||||
|
$smarty->assign("subnet_options", db_get_options_subnet()); |
||||||
|
$smarty->assign("assetclass_options", db_get_options_assetclass()); |
||||||
|
$smarty->display("nodeadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,24 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT node_id AS id, node_ip AS ip, asset_id FROM node WHERE node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
$smarty->assign("node", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("nodedel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT node_id AS id, node_ip AS ip, node_mac AS mac, |
||||||
|
node_dns1 AS dns1, node_dns2 AS dns2, node_info AS info, |
||||||
|
zone_id, asset_id, subnet_id |
||||||
|
FROM node |
||||||
|
WHERE node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
$smarty->assign("node", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->assign("asset_options", db_get_options_asset()); |
||||||
|
$smarty->assign("subnet_options", db_get_options_subnet()); |
||||||
|
$smarty->assign("zone_options", db_get_options_zone('(keine)')); |
||||||
|
|
||||||
|
$smarty->display("nodeedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,89 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if (isset($_GET['node_id']) && (!empty($_GET['node_id']))) { |
||||||
|
$node_id = sanitize($_GET['node_id']); |
||||||
|
} else { |
||||||
|
// redirect to error page |
||||||
|
header_location("comments.php?comments=error"); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// node |
||||||
|
$sql = "SELECT |
||||||
|
asset.asset_id, |
||||||
|
asset.asset_name, |
||||||
|
node.node_id AS id, |
||||||
|
node.node_ip AS ip, |
||||||
|
node.node_mac AS mac, |
||||||
|
node.node_dns1 AS dns1, |
||||||
|
node.node_dns2 AS dns2, |
||||||
|
node.node_info AS info, |
||||||
|
node.node_type AS type, |
||||||
|
subnet.subnet_id, |
||||||
|
subnet.subnet_address, |
||||||
|
subnet.subnet_mask, |
||||||
|
zone.zone_origin |
||||||
|
FROM |
||||||
|
node |
||||||
|
LEFT JOIN asset USING (asset_id) |
||||||
|
LEFT JOIN subnet USING (subnet_id) |
||||||
|
LEFT JOIN zone USING (zone_id) |
||||||
|
WHERE |
||||||
|
node.node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
|
||||||
|
$node = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
$node->mac = write_mac($node->mac); |
||||||
|
$smarty->assign("node", $node); |
||||||
|
|
||||||
|
// nat |
||||||
|
$sql = "SELECT |
||||||
|
asset_ext.asset_id AS asset_id_ext, |
||||||
|
asset_int.asset_id AS asset_id_int, |
||||||
|
asset_ext.asset_name AS asset_name_ext, |
||||||
|
asset_int.asset_name AS asset_name_int, |
||||||
|
nat.nat_id AS nat_id, |
||||||
|
nat.nat_type AS nat_type, |
||||||
|
nat.nat_ext AS nat_ext, |
||||||
|
nat.nat_int AS nat_int, |
||||||
|
node_ext.node_ip AS node_ip_ext, |
||||||
|
node_int.node_ip AS node_ip_int, |
||||||
|
node_int.node_id AS node_id_int, |
||||||
|
node_ext.node_id AS node_id_ext |
||||||
|
FROM |
||||||
|
asset AS asset_ext, |
||||||
|
asset AS asset_int, |
||||||
|
nat, |
||||||
|
node AS node_ext, |
||||||
|
node AS node_int |
||||||
|
WHERE |
||||||
|
(nat.nat_ext=:node_id OR nat.nat_int=:node_id) |
||||||
|
AND node_ext.node_id=nat.nat_ext |
||||||
|
AND node_int.node_id=nat.nat_int |
||||||
|
AND asset_ext.asset_id=node_ext.asset_id |
||||||
|
AND asset_int.asset_id=node_int.asset_id |
||||||
|
ORDER BY |
||||||
|
INET_ATON(node_ext.node_ip), |
||||||
|
INET_ATON(node_int.node_ip)"; |
||||||
|
|
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute(['node_id' => $node_id]); |
||||||
|
|
||||||
|
$smarty->assign("natrules", $sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("nodeview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,99 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->assign("language", $language); |
||||||
|
|
||||||
|
|
||||||
|
if($_SESSION['suser_menu_assets']=='on') { |
||||||
|
$user_menu_assets_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_assets_checked = ''; |
||||||
|
} |
||||||
|
// assetclasses |
||||||
|
if($_SESSION['suser_menu_assetclasses']=='on') { |
||||||
|
$user_menu_assetclasses_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_assetclasses_checked = ''; |
||||||
|
} |
||||||
|
// assetclassgroups |
||||||
|
if($_SESSION['suser_menu_assetclassgroups']=='on') { |
||||||
|
$user_menu_assetclassgroups_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_assetclassgroups_checked = ''; |
||||||
|
} |
||||||
|
// cables |
||||||
|
if($_SESSION['suser_menu_cables']=='on') { |
||||||
|
$user_menu_cables_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_cables_checked = ''; |
||||||
|
} |
||||||
|
// locations |
||||||
|
if($_SESSION['suser_menu_locations']=='on') { |
||||||
|
$user_menu_locations_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_locations_checked = ''; |
||||||
|
} |
||||||
|
// nodes |
||||||
|
if($_SESSION['suser_menu_nodes']=='on') { |
||||||
|
$user_menu_nodes_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_nodes_checked = ''; |
||||||
|
} |
||||||
|
// subnets |
||||||
|
if($_SESSION['suser_menu_subnets']=='on') { |
||||||
|
$user_menu_subnets_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_subnets_checked = ''; |
||||||
|
} |
||||||
|
// vlans |
||||||
|
if($_SESSION['suser_menu_vlans']=='on') { |
||||||
|
$user_menu_vlans_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_vlans_checked = ''; |
||||||
|
} |
||||||
|
// zones |
||||||
|
if($_SESSION['suser_menu_zones']=='on') { |
||||||
|
$user_menu_zones_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_menu_zones_checked = ''; |
||||||
|
} |
||||||
|
// tooltips |
||||||
|
if($_SESSION['suser_tooltips']=='on') { |
||||||
|
$user_tooltips_checked = 'checked'; |
||||||
|
} else { |
||||||
|
$user_tooltips_checked = ''; |
||||||
|
} |
||||||
|
|
||||||
|
$smarty->assign("user_id", $_SESSION['suser_id']); |
||||||
|
$smarty->assign("user_imagesize", $_SESSION['suser_imagesize']); |
||||||
|
$smarty->assign("user_imagecount", $_SESSION['suser_imagecount']); |
||||||
|
$smarty->assign("user_mac", $_SESSION['suser_mac']); |
||||||
|
$smarty->assign("user_dateformat", $_SESSION['suser_dateformat']); |
||||||
|
$smarty->assign("user_dns1suffix", $_SESSION['suser_dns1suffix']); |
||||||
|
$smarty->assign("user_dns2suffix", $_SESSION['suser_dns2suffix']); |
||||||
|
$smarty->assign("user_language", $_SESSION['suser_language']); |
||||||
|
$smarty->assign("user_menu_assets_checked", $user_menu_assets_checked); |
||||||
|
$smarty->assign("user_menu_assetclasses_checked", $user_menu_assetclasses_checked); |
||||||
|
$smarty->assign("user_menu_assetclassgroups_checked", $user_menu_assetclassgroups_checked); |
||||||
|
$smarty->assign("user_menu_cables_checked", $user_menu_cables_checked); |
||||||
|
$smarty->assign("user_menu_locations_checked", $user_menu_locations_checked); |
||||||
|
$smarty->assign("user_menu_nodes_checked", $user_menu_nodes_checked); |
||||||
|
$smarty->assign("user_menu_subnets_checked", $user_menu_subnets_checked); |
||||||
|
$smarty->assign("user_menu_vlans_checked", $user_menu_vlans_checked); |
||||||
|
$smarty->assign("user_menu_zones_checked", $user_menu_zones_checked); |
||||||
|
$smarty->assign("user_tooltips_checked", $user_tooltips_checked); |
||||||
|
|
||||||
|
$smarty->display("optionseditdisplay.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,16 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->display("optionseditpassword.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,815 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] != "POST") { |
||||||
|
header_location("comments.php?comments=" . $comments); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
if (isset($_POST['redirect'])) { |
||||||
|
switch ($_POST['redirect']) { |
||||||
|
|
||||||
|
case ("assigniptonode") : |
||||||
|
$node_ip = sanitize($_POST['node_ip']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("assignnodetoasset") : |
||||||
|
header_location("assignnodetoasset.php?subnet_id=" . $subnet_id . "&node_ip=" . $node_ip); |
||||||
|
break; |
||||||
|
case ("nodeadd") : |
||||||
|
header_location("nodeadd.php?subnet_id=" . $subnet_id . "&node_ip=" . $node_ip); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case ("locationsubnet") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("locationsubnetadd") : |
||||||
|
header_location("locationsubnetadd.php?location_id=" . $location_id); |
||||||
|
break; |
||||||
|
case ("locationsubnetdel") : |
||||||
|
header_location("locationsubnetdel.php?location_id=" . $location_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case ("nat") : |
||||||
|
$node_id = sanitize($_POST['node_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("natadd") : |
||||||
|
header_location("natadd.php?node_id=" . $node_id); |
||||||
|
break; |
||||||
|
case ("natdel") : |
||||||
|
header_location("natdel.php?node_id=" . $node_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetlocation") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("subnetlocationadd") : |
||||||
|
header_location("subnetlocationadd.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
case ("subnetlocationdel") : |
||||||
|
header_location("subnetlocationdel.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetvlan") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("subnetvlanadd") : |
||||||
|
header_location("subnetvlanadd.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
case ("subnetvlandel") : |
||||||
|
header_location("subnetvlandel.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlansubnet") : |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
switch ($_POST['action']) { |
||||||
|
case ("vlansubnetadd") : |
||||||
|
header_location("vlansubnetadd.php?vlan_id=" . $vlan_id); |
||||||
|
break; |
||||||
|
case ("vlansubnetdel") : |
||||||
|
header_location("vlansubnetdel.php?vlan_id=" . $vlan_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (isset($_POST['add'])) { |
||||||
|
switch ($_POST['add']) { |
||||||
|
|
||||||
|
case ("asset") : |
||||||
|
$name = sanitize($_POST['asset_name']); |
||||||
|
$hostname = sanitize($_POST['asset_hostname']); |
||||||
|
$assetclass_id = sanitize($_POST['assetclass_id']); |
||||||
|
$info = sanitize($_POST['asset_info']); |
||||||
|
$intf = sanitize($_POST['asset_intf']); |
||||||
|
$asset_type = sanitize($_POST['asset_type']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO asset |
||||||
|
(asset_name, asset_hostname, assetclass_id, asset_info, |
||||||
|
asset_intf, asset_type) |
||||||
|
VALUE |
||||||
|
(?, ?, ?, ?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$name, $hostname, $assetclass_id, $info, $intf, $asset_type]); |
||||||
|
|
||||||
|
header_location("assetview.php?asset_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assetclass") : |
||||||
|
$name = sanitize($_POST['assetclass_name']); |
||||||
|
$description = sanitize($_POST['assetclass_description']); |
||||||
|
$group_id = sanitize($_POST['assetclassgroup_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO assetclass |
||||||
|
(assetclass_name, assetclass_description, assetclassgroup_id) |
||||||
|
VALUE |
||||||
|
(?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$name, $description, $group_id]); |
||||||
|
|
||||||
|
header_location("assetclassview.php?assetclass_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assetclassgroup") : |
||||||
|
$name = sanitize($_POST['acg_name']); |
||||||
|
$color = preg_replace("|[^a-zA-Z0-9]|", "", strtoupper(sanitize($_POST['acg_color']))); |
||||||
|
$desc = sanitize($_POST['acg_description']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO assetclassgroup |
||||||
|
(assetclassgroup_name, assetclassgroup_color, assetclassgroup_description) |
||||||
|
VALUE |
||||||
|
(?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$name, $color, $desc]); |
||||||
|
|
||||||
|
header_location("assetclassgroupview.php?assetclassgroup_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assignnodetoasset") : |
||||||
|
$node_ip = sanitize($_POST['node_ip']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$asset_id = sanitize($_POST['asset_id']); |
||||||
|
$node_mac = strip_mac(sanitize($_POST['node_mac'])); |
||||||
|
if ((!empty($_POST['node_dns1']) && isset($_POST['node_dns1suffix'])) ? $node_dns1 = sanitize($_POST['node_dns1']) . $config_dns1suffix : $node_dns1 = sanitize($_POST['node_dns1'])); |
||||||
|
if ((!empty($_POST['node_dns2']) && isset($_POST['node_dns2suffix'])) ? $node_dns2 = sanitize($_POST['node_dns2']) . $config_dns2suffix : $node_dns2 = sanitize($_POST['node_dns2'])); |
||||||
|
$node_info = $_POST['node_info']; |
||||||
|
|
||||||
|
$sql = "INSERT INTO node ( |
||||||
|
node_ip, |
||||||
|
node_mac, |
||||||
|
node_dns1, |
||||||
|
node_dns2, |
||||||
|
subnet_id, |
||||||
|
asset_id, |
||||||
|
node_info) |
||||||
|
VALUE |
||||||
|
(?, ?, ?, ?, ?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_ip, $node_mac, $node_dns1, $node_dns2, |
||||||
|
$subnet_id, $asset_id, $node_info]); |
||||||
|
|
||||||
|
header_location("nodeview.php?node_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assignlocationtosubnet") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnetlocation (location_id, subnet_id) |
||||||
|
VALUE (?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("Location: location.php?location_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assignsubnettovlan") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sql = "UPDATE subnet SET vlan_id=? WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$vlan_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("location") : |
||||||
|
$name = sanitize($_POST['location_name']); |
||||||
|
$parent = sanitize($_POST['location_parent']); |
||||||
|
$info = sanitize($_POST['location_info']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO location ( |
||||||
|
location_name, location_parent, location_info |
||||||
|
) |
||||||
|
VALUE (?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$name, $parent, $info]); |
||||||
|
|
||||||
|
header_location("locationview.php?location_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("locationsubnet") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnetlocation (location_id, subnet_id) |
||||||
|
VALUE (?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("locationview.php?location_id=" . $location_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("nat") : |
||||||
|
$node_id_ext = sanitize($_POST['node_id_ext']); |
||||||
|
$node_id_int = sanitize($_POST['node_id_int']); |
||||||
|
$nat_type = sanitize($_POST['nat_type']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO nat (nat_ext, nat_int, nat_type) |
||||||
|
VALUE (?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$node_id_ext, $node_id_int, $nat_type]); |
||||||
|
|
||||||
|
header_location("nodeview.php?node_id=" . $node_id_ext); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("node") : |
||||||
|
$asset_name = sanitize($_POST['asset_name']); |
||||||
|
$asset_hostname = sanitize($_POST['asset_hostname']); |
||||||
|
$assetclass_id = sanitize($_POST['assetclass_id']); |
||||||
|
$ip = sanitize($_POST['node_ip']); |
||||||
|
$mac = strip_mac(sanitize($_POST['node_mac'])); |
||||||
|
if ((!empty($_POST['node_dns1']) && isset($_POST['dns1suffix'])) ? $dns1 = sanitize($_POST['node_dns1']) . $config_dns1suffix : $dns1 = sanitize($_POST['node_dns1'])); |
||||||
|
if ((!empty($_POST['node_dns2']) && isset($_POST['dns2suffix'])) ? $dns2 = sanitize($_POST['node_dns2']) . $config_dns2suffix : $dns2 = sanitize($_POST['node_dns2'])); |
||||||
|
$node_info = sanitize($_POST['node_info']); |
||||||
|
$subnet_id = $_POST['subnet_id']; |
||||||
|
|
||||||
|
$sql = "INSERT INTO asset (asset_name, asset_hostname, assetclass_id) |
||||||
|
VALUE (?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_name, $asset_hostname, $assetclass_id]); |
||||||
|
$asset_id = $dbh->lastInsertId(); |
||||||
|
|
||||||
|
$sql = "INSERT INTO node ( |
||||||
|
node_ip, node_mac, node_dns1, node_dns2, node_info, |
||||||
|
subnet_id, asset_id |
||||||
|
) |
||||||
|
VALUE (?, ?, ?, ?, ?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$ip, $mac, $dns1, $dns2, $node_info, $subnet_id, $asset_id]); |
||||||
|
|
||||||
|
header_location("nodeview.php?node_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnet") : |
||||||
|
$subnet_address= sanitize($_POST['subnet_address']); |
||||||
|
$subnet_mask = sanitize($_POST['subnet_mask']); |
||||||
|
$subnet_info = sanitize($_POST['subnet_info']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnet (subnet_address, subnet_mask, subnet_info) |
||||||
|
VALUE (?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_address, $subnet_mask, $subnet_info]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetlocation") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnetlocation (location_id, subnet_id) |
||||||
|
VALUE (?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetvlan") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnetvlan (subnet_id, vlan_id) |
||||||
|
VALUE (?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id, $vlan_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("user") : |
||||||
|
$user_name = strtolower(sanitize($_POST['user_name'])); |
||||||
|
$user_displayname = sanitize($_POST['user_displayname']); |
||||||
|
$user_password = md5(sanitize($_POST['user_password'])); |
||||||
|
|
||||||
|
// check if username exists |
||||||
|
$sth = $dbh->prepare("SELECT COUNT(*) FROM user WHERE user_name=?"); |
||||||
|
$sth->execute([$user_name]); |
||||||
|
|
||||||
|
if ($sth->fetchColumn() == 0) { |
||||||
|
$sql = "INSERT INTO user (user_name, user_displayname, user_pass) |
||||||
|
VALUE (?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$user_name, $user_displayname, $user_password]); |
||||||
|
|
||||||
|
header_location("userview.php?user_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
$comments = "usernameinuse"; |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlan") : |
||||||
|
$vlan_name = sanitize($_POST['vlan_name']); |
||||||
|
$vlan_number = sanitize($_POST['vlan_number']); |
||||||
|
$vlan_info = sanitize($_POST['vlan_info']); |
||||||
|
$vlan_color = sanitize($_POST['vlan_color']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO vlan (vlan_name, vlan_number, vlan_color, vlan_info) |
||||||
|
VALUE (?, ?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$vlan_name, $vlan_number, $vlan_color, $vlan_info]); |
||||||
|
|
||||||
|
header_location("vlanview.php?vlan_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlansubnet") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO subnetvlan (subnet_id, vlan_id) |
||||||
|
VALUE (?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id, $vlan_id]); |
||||||
|
|
||||||
|
header_location("vlanview.php?vlan_id=" . $vlan_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("zone") : |
||||||
|
$zone_origin = sanitize($_POST['zone_origin']); |
||||||
|
$zone_ttl_default = sanitize($_POST['zone_ttl_default']); |
||||||
|
$zone_soa = sanitize($_POST['zone_soa']); |
||||||
|
$zone_hostmaster = sanitize($_POST['zone_hostmaster']); |
||||||
|
$zone_refresh = sanitize($_POST['zone_refresh']); |
||||||
|
$zone_retry = sanitize($_POST['zone_retry']); |
||||||
|
$zone_expire = sanitize($_POST['zone_expire']); |
||||||
|
$zone_ttl = sanitize($_POST['zone_ttl']); |
||||||
|
$zone_serial = sanitize($_POST['zone_serial']); |
||||||
|
$zone_ns1 = sanitize($_POST['zone_ns1']); |
||||||
|
$zone_ns2 = sanitize($_POST['zone_ns2']); |
||||||
|
$zone_ns3 = sanitize($_POST['zone_ns3']); |
||||||
|
$zone_mx1 = sanitize($_POST['zone_mx1']); |
||||||
|
$zone_mx2 = sanitize($_POST['zone_mx2']); |
||||||
|
$zone_info = sanitize($_POST['zone_info']); |
||||||
|
|
||||||
|
$sql = "INSERT INTO zone ( |
||||||
|
zone_origin, zone_ttl_default, zone_soa, zone_hostmaster, |
||||||
|
zone_refresh, zone_retry, zone_expire, zone_ttl, zone_serial, |
||||||
|
zone_ns1, zone_ns2, zone_ns3, zone_mx1, zone_mx2, zone_info) |
||||||
|
VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$zone_origin, $zone_ttl_default, $zone_soa, $zone_hostmaster, |
||||||
|
$zone_refresh, $zone_retry, $zone_expire, $zone_ttl, $zone_serial, |
||||||
|
$zone_ns1, $zone_ns2, $zone_ns3, $zone_mx1, $zone_mx2, $zone_info]); |
||||||
|
|
||||||
|
header_location("zoneview.php?zone_id=" . $dbh->lastInsertId()); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (isset($_POST['del'])) { |
||||||
|
switch ($_POST['del']) { |
||||||
|
|
||||||
|
case ("asset") : |
||||||
|
$asset_id = sanitize($_POST['asset_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM asset WHERE asset_id=?"); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM node WHERE asset_id=?"); |
||||||
|
$sth->execute([$asset_id]); |
||||||
|
|
||||||
|
header_location("asset.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assetclass") : |
||||||
|
$assetclass_id = sanitize($_POST['assetclass_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM assetclass WHERE assetclass_id=?"); |
||||||
|
$sth->execute([$assetclass_id]); |
||||||
|
|
||||||
|
header_location("assetclass.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assetclassgroup") : |
||||||
|
$assetclassgroup_id = sanitize($_POST['assetclassgroup_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM assetclassgroup WHERE assetclassgroup_id=?"); |
||||||
|
$sth->execute([$assetclassgroup_id]); |
||||||
|
|
||||||
|
header_location("assetclassgroup.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("location") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM location WHERE location_id=?"); |
||||||
|
$sth->execute([$location_id]); |
||||||
|
|
||||||
|
header_location("location.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("locationsubnet") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM subnetlocation WHERE location_id=? AND subnet_id=?"); |
||||||
|
$sth->execute([$location_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("locationview.php?location_id=" . $location_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("nat") : |
||||||
|
$nat_id = sanitize($_POST['nat_id']); |
||||||
|
$node_id_ext = sanitize($_POST['node_id_ext']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM nat WHERE nat_id=?"); |
||||||
|
$sth->execute([$nat_id]); |
||||||
|
|
||||||
|
header_location("nodeview.php?node_id=" . $node_id_ext); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("node") : |
||||||
|
$node_id = sanitize($_POST['node_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM node WHERE node_id=?"); |
||||||
|
$sth->execute([$node_id]); |
||||||
|
|
||||||
|
header_location("assetview.php?asset_id=" . $asset_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnet") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM subnet WHERE subnet_id=?"); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM node WHERE subnet_id=?"); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
header_location("subnet.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetlocation") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM subnetlocation WHERE location_id=? AND subnet_id=?"); |
||||||
|
$sth->execute([$location_id, $subnet_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnetvlan") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM subnetvlan WHERE subnet_id=? AND vlan_id=?"); |
||||||
|
$sth->execute([$subnet_id, $vlan_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("user") : |
||||||
|
$user_id = sanitize($_POST['user_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM user WHERE user_id=?"); |
||||||
|
$sth->execute([$user_id]); |
||||||
|
|
||||||
|
header_location("user.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlan") : |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM vlan WHERE vlan_id=?"); |
||||||
|
$sth->execute([$vlan_id]); |
||||||
|
|
||||||
|
header_location("vlan.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlansubnet") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM subnetvlan WHERE subnet_id=? AND vlan_id=?"); |
||||||
|
$sth->execute([$subnet_id, $vlan_id]); |
||||||
|
|
||||||
|
header_location("vlanview.php?vlan_id=" . $vlan_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("zone") : |
||||||
|
$zone_id = sanitize($_POST['zone_id']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("DELETE FROM zone WHERE zone_id=?"); |
||||||
|
$sth->execute([$zone_id]); |
||||||
|
|
||||||
|
header_location("zone.php"); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (isset($_POST['edit'])) { |
||||||
|
switch ($_POST['edit']) { |
||||||
|
|
||||||
|
case ("asset") : |
||||||
|
$asset_id = sanitize($_POST['asset_id']); |
||||||
|
$asset_name = sanitize($_POST['asset_name']); |
||||||
|
$asset_info = sanitize($_POST['asset_info']); |
||||||
|
$asset_intf = sanitize($_POST['asset_intf']); |
||||||
|
$asset_hostname = sanitize($_POST['asset_hostname']); |
||||||
|
$assetclass_id = sanitize($_POST['assetclass_id']); |
||||||
|
$asset_type = sanitize($_POST['asset_type']); |
||||||
|
|
||||||
|
$sql = "UPDATE asset SET |
||||||
|
asset_name=?, asset_info=?, asset_hostname=?, |
||||||
|
assetclass_id=?, asset_intf=?, asset_type=? |
||||||
|
WHERE asset_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_name, $asset_info, $asset_hostname, |
||||||
|
$assetclass_id, $asset_intf, $asset_type, |
||||||
|
$asset_id]); |
||||||
|
|
||||||
|
header_location("assetview.php?asset_id=" . $asset_id); |
||||||
|
|
||||||
|
case ("assetclass") : |
||||||
|
$id = sanitize($_POST['assetclass_id']); |
||||||
|
$name = sanitize($_POST['assetclass_name']); |
||||||
|
$description = sanitize($_POST['assetclass_description']); |
||||||
|
$group_id = sanitize($_POST['assetclassgroup_id']); |
||||||
|
|
||||||
|
$sql = "UPDATE assetclass SET |
||||||
|
assetclass_name=?, assetclass_description=?, |
||||||
|
assetclassgroup_id=? |
||||||
|
WHERE assetclass_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$name, $description, $group_id, $id]); |
||||||
|
|
||||||
|
header_location("assetclassview.php?assetclass_id=" . $id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("assetclassgroup") : |
||||||
|
$acg_id = sanitize($_POST['acg_id']); |
||||||
|
$acg_name = sanitize($_POST['acg_name']); |
||||||
|
$acg_desc = sanitize($_POST['acg_description']); |
||||||
|
$acg_color = preg_replace("|[^a-zA-Z0-9]|", "", strtoupper(sanitize($_POST['acg_color']))); |
||||||
|
|
||||||
|
$sql = "UPDATE assetclassgroup SET |
||||||
|
assetclassgroup_name=?, assetclassgroup_color=?, assetclassgroup_description=? |
||||||
|
WHERE assetclassgroup_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$acg_name, $acg_color, $acg_desc, $acg_id]); |
||||||
|
|
||||||
|
header_location("assetclassgroupview.php?assetclassgroup_id=" . $acg_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("location") : |
||||||
|
$location_id = sanitize($_POST['location_id']); |
||||||
|
$location_name = sanitize($_POST['location_name']); |
||||||
|
$location_info = sanitize($_POST['location_info']); |
||||||
|
$parentlocation_id = sanitize($_POST['parentlocation_id']); |
||||||
|
|
||||||
|
$sql = "UPDATE location SET |
||||||
|
location_name=?, location_parent=?, location_info=? |
||||||
|
WHERE location_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$location_name, $parentlocation_id, $location_info, $location_id]); |
||||||
|
|
||||||
|
header_location("locationview.php?location_id=" . $location_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("node") : |
||||||
|
$node_id = sanitize($_POST['node_id']); |
||||||
|
$asset_id = sanitize($_POST['asset_id']); |
||||||
|
$node_ip = sanitize($_POST['node_ip']); |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$node_mac = strip_mac(sanitize($_POST['node_mac'])); |
||||||
|
$node_dns1 = sanitize($_POST['node_dns1']); |
||||||
|
$node_dns2 = sanitize($_POST['node_dns2']); |
||||||
|
$node_info = sanitize($_POST['node_info']); |
||||||
|
$zone_id = sanitize($_POST['zone_id']); |
||||||
|
|
||||||
|
$sql = "UPDATE node SET |
||||||
|
asset_id=?, node_ip=?, subnet_id=?, node_mac=?, |
||||||
|
node_dns1=?, node_dns2=?, node_info=?, zone_id=? |
||||||
|
WHERE node_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$asset_id, $node_ip, $subnet_id, $node_mac, |
||||||
|
$node_dns1, $node_dns2, $node_info, $zone_id, |
||||||
|
$node_id]); |
||||||
|
|
||||||
|
header_location("nodeview.php?node_id=" . $node_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("optionsdisplay") : |
||||||
|
$id = $_SESSION['suser_id']; |
||||||
|
$language = $_POST['user_language']; |
||||||
|
$imagesize = sanitize($_POST['user_imagesize']); |
||||||
|
$imagecount = sanitize($_POST['user_imagecount']); |
||||||
|
$mac = sanitize($_POST['user_mac']); |
||||||
|
$dateformat = sanitize($_POST['user_dateformat']); |
||||||
|
$dns1suffix = sanitize($_POST['user_dns1suffix']); |
||||||
|
$dns2suffix = sanitize($_POST['user_dns2suffix']); |
||||||
|
$tooltips = sanitize($_POST['user_tooltips']); |
||||||
|
|
||||||
|
$menu_assets = sanitize($_POST['user_menu_assets']); |
||||||
|
$menu_assetclasses = sanitize($_POST['user_menu_assetclasses']); |
||||||
|
$menu_assetclassgroups = sanitize($_POST['user_menu_assetclassgroups']); |
||||||
|
$menu_cables = sanitize($_POST['user_menu_cables']); |
||||||
|
$menu_locations = sanitize($_POST['user_menu_locations']); |
||||||
|
$menu_nodes = sanitize($_POST['user_menu_nodes']); |
||||||
|
$menu_subnets = sanitize($_POST['user_menu_subnets']); |
||||||
|
$menu_vlans = sanitize($_POST['user_menu_vlans']); |
||||||
|
$menu_zones = sanitize($_POST['user_menu_zones']); |
||||||
|
|
||||||
|
// construct menu set |
||||||
|
$menu = array(); |
||||||
|
if ($menu_assets) $menu[] = 'asset'; |
||||||
|
if ($menu_assetclasses) $menu[] = 'class'; |
||||||
|
if ($menu_assetclassgroups) $menu[] = 'group'; |
||||||
|
if ($menu_cables) $menu[] = 'cable'; |
||||||
|
if ($menu_locations) $menu[] = 'location'; |
||||||
|
if ($menu_nodes) $menu[] = 'node'; |
||||||
|
if ($menu_subnets) $menu[] = 'subnet'; |
||||||
|
if ($menu_vlans) $menu[] = 'vlan'; |
||||||
|
if ($menu_zones) $menu[] = 'zone'; |
||||||
|
|
||||||
|
$sql = "UPDATE user SET |
||||||
|
user_language=?, user_imagesize=?, user_imagecount=?, |
||||||
|
user_mac=?, user_dateformat=?, user_dns1suffix=?, |
||||||
|
user_dns2suffix=?, user_tooltips=?, user_menu=? |
||||||
|
WHERE |
||||||
|
user_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$language, $imagesize, $imagecount, |
||||||
|
$mac, $dateformat, $dns1suffix, |
||||||
|
$dns2suffix, $tooltips, implode(',', $menu), |
||||||
|
$id]); |
||||||
|
|
||||||
|
$_SESSION['suser_language'] = $language; |
||||||
|
$_SESSION['suser_imagesize'] = $imagesize; |
||||||
|
$_SESSION['suser_imagecount'] = $imagecount; |
||||||
|
$_SESSION['suser_mac'] = $mac; |
||||||
|
$_SESSION['suser_dateformat'] = $dateformat; |
||||||
|
$_SESSION['suser_dns1suffix'] = $dns1suffix; |
||||||
|
$_SESSION['suser_dns2suffix'] = $dns2suffix; |
||||||
|
$_SESSION['suser_menu_assets'] = $menu_assets; |
||||||
|
$_SESSION['suser_menu_assetclasses'] = $menu_assetclasses; |
||||||
|
$_SESSION['suser_menu_assetclassgroups'] = $menu_assetclassgroups; |
||||||
|
$_SESSION['suser_menu_cables'] = $menu_cables; |
||||||
|
$_SESSION['suser_menu_locations'] = $menu_locations; |
||||||
|
$_SESSION['suser_menu_nodes'] = $menu_nodes; |
||||||
|
$_SESSION['suser_menu_subnets'] = $menu_subnets; |
||||||
|
$_SESSION['suser_menu_vlans'] = $menu_vlans; |
||||||
|
$_SESSION['suser_menu_zones'] = $menu_zones; |
||||||
|
$_SESSION['suser_tooltips'] = $tooltips; |
||||||
|
|
||||||
|
header_location("options.php"); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("optionspassword") : |
||||||
|
$user_id = $_SESSION['suser_id']; |
||||||
|
$currentpass = sanitize($_POST['user_currentpass']); |
||||||
|
$newpass1 = sanitize($_POST['user_newpass1']); |
||||||
|
$newpass2 = sanitize($_POST['user_newpass2']); |
||||||
|
|
||||||
|
$sth = $dbh->prepare("SELECT user_pass FROM user WHERE user_id=?"); |
||||||
|
$sth->execute([$user_id]); |
||||||
|
|
||||||
|
$userpass = $sth->fetchColumn();; |
||||||
|
|
||||||
|
if (password_verify($currentpass, $userpass)) { |
||||||
|
if (!strcmp($newpass1, $newpass2)) { |
||||||
|
$sth = $dbh->prepare("UPDATE user SET user_pass=? WHERE user_id=?"); |
||||||
|
$newhash = password_hash($newpass1, PASSWORD_BCRYPT); |
||||||
|
$sth->execute([$newhash, $user_id]); |
||||||
|
header_location("options.php"); |
||||||
|
} |
||||||
|
} |
||||||
|
// TODO generate errormessages here |
||||||
|
break; |
||||||
|
|
||||||
|
case ("subnet") : |
||||||
|
$subnet_id = sanitize($_POST['subnet_id']); |
||||||
|
$subnet_address= sanitize($_POST['subnet_address']); |
||||||
|
$subnet_proto_vers = sanitize($_POST['subnet_proto_vers']); |
||||||
|
$subnet_mask = sanitize($_POST['subnet_mask']); |
||||||
|
$subnet_dhcpstart = sanitize($_POST['subnet_dhcpstart']); |
||||||
|
$subnet_dhcpend = sanitize($_POST['subnet_dhcpend']); |
||||||
|
$subnet_ntp_server = sanitize($_POST['subnet_ntp_server']); |
||||||
|
$subnet_info = sanitize($_POST['subnet_info']); |
||||||
|
|
||||||
|
$sql = "UPDATE subnet SET |
||||||
|
subnet_address=?, subnet_mask=?, subnet_dhcp_start=?, |
||||||
|
subnet_dhcp_end=?, subnet_info=?, protocol_version=?, |
||||||
|
ntp_server=? |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_address, $subnet_mask, $subnet_dhcpstart, |
||||||
|
$subnet_dhcpend, $subnet_info, $subnet_proto_vers, |
||||||
|
$subnet_ntp_server, $subnet_id]); |
||||||
|
|
||||||
|
header_location("subnetview.php?subnet_id=" . $subnet_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("user") : |
||||||
|
$user_id = sanitize($_POST['user_id']); |
||||||
|
$user_name = sanitize($_POST['user_name']); |
||||||
|
$user_displayname = sanitize($_POST['user_displayname']); |
||||||
|
$user_realm = sanitize($_POST['user_realm']); |
||||||
|
// roles |
||||||
|
$role_add = sanitize($_POST['role_add']); |
||||||
|
$role_edit = sanitize($_POST['role_edit']); |
||||||
|
$role_delete = sanitize($_POST['role_delete']); |
||||||
|
$role_manage = sanitize($_POST['role_manage']); |
||||||
|
$role_admin = sanitize($_POST['role_admin']); |
||||||
|
|
||||||
|
// construct menu set |
||||||
|
$role = array(); |
||||||
|
if ($role_add) $role[] = 'add'; |
||||||
|
if ($role_edit) $role[] = 'edit'; |
||||||
|
if ($role_delete) $role[] = 'delete'; |
||||||
|
if ($role_manage) $role[] = 'manage'; |
||||||
|
if ($role_admin) $role[] = 'admin'; |
||||||
|
|
||||||
|
|
||||||
|
$sql = "UPDATE user SET |
||||||
|
user_name=?, user_displayname=?, user_realm=?, |
||||||
|
user_role=? |
||||||
|
WHERE user_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$user_name ,$user_displayname, $user_realm, |
||||||
|
implode(',', $role), $user_id]); |
||||||
|
|
||||||
|
header_location("userview.php?user_id=" . $user_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("vlan") : |
||||||
|
$vlan_id = sanitize($_POST['vlan_id']); |
||||||
|
$vlan_name = sanitize($_POST['vlan_name']); |
||||||
|
$vlan_number = sanitize($_POST['vlan_number']); |
||||||
|
$vlan_info = sanitize($_POST['vlan_info']); |
||||||
|
$vlan_color = sanitize($_POST['vlan_color']); |
||||||
|
|
||||||
|
$sql = "UPDATE vlan SET vlan_name=?, vlan_number=?, vlan_color=?, vlan_info=? WHERE vlan_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$vlan_name, $vlan_number, $vlan_color, $vlan_info, $vlan_id]); |
||||||
|
|
||||||
|
header_location("vlanview.php?vlan_id=" . $vlan_id); |
||||||
|
break; |
||||||
|
|
||||||
|
case ("zone") : |
||||||
|
$id = sanitize($_POST['zone_id']); |
||||||
|
$origin = sanitize($_POST['zone_origin']); |
||||||
|
$ttl_default = sanitize($_POST['zone_ttl_default']); |
||||||
|
$soa = sanitize($_POST['zone_soa']); |
||||||
|
$hostmaster = sanitize($_POST['zone_hostmaster']); |
||||||
|
$refresh = sanitize($_POST['zone_refresh']); |
||||||
|
$retry = sanitize($_POST['zone_retry']); |
||||||
|
$expire = sanitize($_POST['zone_expire']); |
||||||
|
$ttl = sanitize($_POST['zone_ttl']); |
||||||
|
$serial = sanitize($_POST['zone_serial']); |
||||||
|
$ns1 = sanitize($_POST['zone_ns1']); |
||||||
|
$ns2 = sanitize($_POST['zone_ns2']); |
||||||
|
$ns3 = sanitize($_POST['zone_ns3']); |
||||||
|
$mx1 = sanitize($_POST['zone_mx1']); |
||||||
|
$mx2 = sanitize($_POST['zone_mx2']); |
||||||
|
$info = sanitize($_POST['zone_info']); |
||||||
|
$sql = "UPDATE zone SET |
||||||
|
zone_origin=?, zone_ttl_default=?, zone_soa=?, zone_hostmaster=?, |
||||||
|
zone_refresh=?, zone_retry=?, zone_expire=?, zone_ttl=?, zone_serial=?, |
||||||
|
zone_ns1=?, zone_ns2=?, zone_ns3=?, zone_mx1=?, zone_mx2=?, zone_info=? |
||||||
|
WHERE zone_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$origin, $ttl_default, $soa, $hostmaster, $refresh, $retry, |
||||||
|
$expire, $ttl, $serial, $ns1, $ns2, $ns3, $mx1, $mx2, $info, |
||||||
|
$id]); |
||||||
|
|
||||||
|
header_location("zoneview.php?zone_id=" . $zone_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// still not redirected, check for error |
||||||
|
if(empty($comments)) { |
||||||
|
$comments = "error"; |
||||||
|
} |
||||||
|
header_location("comments.php?comments=" . $comments); |
||||||
|
?> |
@ -0,0 +1,21 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
if((isset($_GET['vlan_id'])) ? $vlan_id = sanitize($_GET['vlan_id']) : $vlan_id = ""); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$smarty->assign("vlan_options", db_get_options_vlan($lang['lang_option_none'])); |
||||||
|
|
||||||
|
$smarty->display("subnetadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,36 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// subnet |
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// node |
||||||
|
$sql = "SELECT node_id AS id, node_ip AS ip |
||||||
|
FROM node |
||||||
|
WHERE subnet_id=? |
||||||
|
ORDER BY INET_ATON(node_ip)"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("nodes", $sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("subnetdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,29 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask, |
||||||
|
protocol_version AS proto_vers, subnet_dhcp_start AS dhcp_start, |
||||||
|
subnet_dhcp_end AS dhcp_end, ntp_server, subnet_info AS info |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("subnetedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,28 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->assign("location_options", db_get_options_location()); |
||||||
|
|
||||||
|
$smarty->display("subnetlocationadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,42 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// subnet |
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// locations for subnet |
||||||
|
$sql = "SELECT l.location_id, l.location_name |
||||||
|
FROM subnetlocation AS s LEFT JOIN location USING (location_id) |
||||||
|
WHERE s.subnet_id=? |
||||||
|
ORDER BY l.location_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id] |
||||||
|
$records = $sth->fetchAll(); |
||||||
|
|
||||||
|
$locations = array(); |
||||||
|
foreach ($records as $rec) { |
||||||
|
$locations[$rec['location_id']] = $rec['location_name']; |
||||||
|
} |
||||||
|
$smarty->assign("location_options", $locations); |
||||||
|
|
||||||
|
$smarty->display("subnetlocationdel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,27 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("subnetlocationedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,364 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
if(isset($_GET['page'])) { |
||||||
|
$page = sanitize($_GET['page']); |
||||||
|
} |
||||||
|
|
||||||
|
$smarty->assign("scripts",'changetext.js'); |
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// subnet |
||||||
|
$sql = "SELECT |
||||||
|
s.subnet_id AS id, |
||||||
|
s.subnet_address AS address, |
||||||
|
s.subnet_mask AS mask, |
||||||
|
s.subnet_dhcp_start AS dhcp_start, |
||||||
|
s.subnet_dhcp_end AS dhcp_end, |
||||||
|
s.subnet_info AS info, |
||||||
|
s.protocol_version AS proto_vers, |
||||||
|
s.ntp_server, |
||||||
|
COUNT(node.subnet_id) AS node_counter |
||||||
|
FROM |
||||||
|
subnet AS s LEFT JOIN node USING (subnet_id) |
||||||
|
WHERE |
||||||
|
s.subnet_id=? |
||||||
|
GROUP BY |
||||||
|
s.subnet_id"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$subnet = $sth->fetch(PDO::FETCH_OBJ); |
||||||
|
|
||||||
|
$smarty->assign("subnet", $subnet); |
||||||
|
|
||||||
|
// set counters |
||||||
|
$host_counter = pow(2, (32-$subnet->mask)); |
||||||
|
$node_counter = $subnet->node_counter; |
||||||
|
$subnet_usedpercentage = round((($node_counter/($host_counter-2))*100), 1); |
||||||
|
|
||||||
|
$smarty->assign("node_counter", $node_counter); |
||||||
|
$smarty->assign("subnet_usedpercentage", $subnet_usedpercentage); |
||||||
|
$smarty->assign("config_color_unused", $config_color_unused); |
||||||
|
$smarty->assign("host_counter", $host_counter-2); |
||||||
|
$smarty->assign("free_counter", (($host_counter-2)-$node_counter)); |
||||||
|
|
||||||
|
// subnet |
||||||
|
|
||||||
|
// split up the range |
||||||
|
$iprange = explode('.', $subnet->address); |
||||||
|
$iprange1 = $iprange[0]; |
||||||
|
$iprange2 = $iprange[1]; |
||||||
|
$iprange3 = $iprange[2]; |
||||||
|
$iprange4 = $iprange[3]; |
||||||
|
|
||||||
|
// create empty subnet-array |
||||||
|
$subnetdata = array(); |
||||||
|
|
||||||
|
// determine range (Class A/B/C) |
||||||
|
if ($subnet->mask >= 24) { |
||||||
|
// Class C |
||||||
|
// fill subnet-array with addresses we want to see |
||||||
|
for($i=0; $i<$host_counter; $i++) { |
||||||
|
// build ip |
||||||
|
$ip = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i); |
||||||
|
|
||||||
|
// fill subnet-array |
||||||
|
$subnetdata[$ip] = array(); |
||||||
|
} |
||||||
|
|
||||||
|
// calculate broadcast address |
||||||
|
$broadcast_address = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i-1); |
||||||
|
|
||||||
|
// to tpl |
||||||
|
$smarty->assign("iprange1", $iprange1); |
||||||
|
$smarty->assign("iprange2", $iprange2); |
||||||
|
$smarty->assign("iprange3", $iprange3); |
||||||
|
$smarty->assign("iprange4", $iprange4); |
||||||
|
$smarty->assign("subnetmask1", 255); |
||||||
|
$smarty->assign("subnetmask2", 255); |
||||||
|
$smarty->assign("subnetmask3", 255); |
||||||
|
$smarty->assign("subnetmask4", 256-$host_counter); |
||||||
|
|
||||||
|
// no pagination needed |
||||||
|
$smarty->assign("noselect", TRUE); |
||||||
|
$smarty->assign("one_select", FALSE); |
||||||
|
$smarty->assign("two_select", FALSE); |
||||||
|
|
||||||
|
// set displayed nodes |
||||||
|
$nodes_displayed = $host_counter; |
||||||
|
|
||||||
|
} else if ($subnet->mask >= 16) { |
||||||
|
// Class B |
||||||
|
// which part do we want to see? |
||||||
|
if ((empty($page)) ? $page = $subnet->address : $page = $page); |
||||||
|
$page = explode('.', $page); |
||||||
|
$page2 = $page[2]; |
||||||
|
|
||||||
|
// fill subnet-array with addresses we want to see |
||||||
|
for($i=0; $i<256; $i++) { |
||||||
|
// build ip |
||||||
|
$ip = $iprange1 . '.' . $iprange2 . '.' . $page2 . '.' . $i; |
||||||
|
|
||||||
|
// fill subnet-array |
||||||
|
$subnetdata[$ip] = array(); |
||||||
|
} |
||||||
|
|
||||||
|
// calculate broadcast address |
||||||
|
$broadcast_address = $iprange1 . '.' . $iprange2 . '.' . ($iprange3+$i-1) . '.255'; |
||||||
|
|
||||||
|
// to tpl |
||||||
|
$smarty->assign("iprange1", $iprange1); |
||||||
|
$smarty->assign("iprange2", $iprange2); |
||||||
|
|
||||||
|
// loop addresses in range3 |
||||||
|
for ($i=$iprange3; $i<(pow(2,(32-$subnet->mask))/256); $i++) { |
||||||
|
// send to tpl |
||||||
|
$smarty->assign("iprange3", $i); |
||||||
|
$smarty->assign("iprange4", 0); |
||||||
|
|
||||||
|
// set select box |
||||||
|
if ($i == $page2) { |
||||||
|
$smarty->assign("row_selected", "selected"); |
||||||
|
|
||||||
|
} else { |
||||||
|
$smarty->assign("row_selected", ""); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
$smarty->assign("subnetmask1", 255); |
||||||
|
$smarty->assign("subnetmask2", 255); |
||||||
|
$smarty->assign("subnetmask3", 256-($host_counter/256)); |
||||||
|
$smarty->assign("subnetmask4", 0); |
||||||
|
|
||||||
|
// one select box |
||||||
|
$smarty->assign("noselect", FALSE); |
||||||
|
$smarty->assign("one_select", TRUE); |
||||||
|
$smarty->assign("two_select", FALSE); |
||||||
|
|
||||||
|
// set displayed nodes |
||||||
|
$nodes_displayed = 256; |
||||||
|
} else { |
||||||
|
// Class A |
||||||
|
// which part do we want to see? |
||||||
|
if ((empty($page)) ? $page = $subnet->address : $page = $page); |
||||||
|
$page = explode('.', $page); |
||||||
|
$page2 = $page[1]; |
||||||
|
$page3 = $page[2]; |
||||||
|
|
||||||
|
// fill subnet-array with addresses we want to see |
||||||
|
for($i=0; $i<256; $i++) { |
||||||
|
// build ip |
||||||
|
$ip = $iprange1 . '.' . $page2 . '.' . $page3 . '.' . $i; |
||||||
|
|
||||||
|
// fill subnet-array |
||||||
|
$subnetdata[$ip] = array(); |
||||||
|
} |
||||||
|
|
||||||
|
// calculate broadcast address |
||||||
|
$broadcast_address = $iprange1 . '.' . ($iprange2+$i-1) . '.255.255'; |
||||||
|
|
||||||
|
// to tpl |
||||||
|
$smarty->assign("iprange1", $iprange1); |
||||||
|
$smarty->assign("iprange2", $iprange2); |
||||||
|
|
||||||
|
// loop addresses in range 2 |
||||||
|
for ($i=$iprange2; $i<(pow(2,(24-$subnet->mask))/256); $i++) { |
||||||
|
// send to tpl |
||||||
|
$smarty->assign("iprange1", $iprange1); |
||||||
|
$smarty->assign("iprange2", $i); |
||||||
|
$smarty->assign("iprange3", $page3); |
||||||
|
$smarty->assign("iprange4", $iprange4); |
||||||
|
|
||||||
|
// set select box |
||||||
|
if($i == $page2) { |
||||||
|
$smarty->assign("row1_selected", "selected"); |
||||||
|
|
||||||
|
} else { |
||||||
|
$smarty->assign("row1_selected", ""); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
// loop addresses in range 3 |
||||||
|
for ($i=0; $i<256; $i++) { |
||||||
|
// send to tpl |
||||||
|
$smarty->assign("iprange1", $iprange1); |
||||||
|
$smarty->assign("iprange2", $page2); |
||||||
|
$smarty->assign("iprange3", $i); |
||||||
|
$smarty->assign("iprange4", $iprange4); |
||||||
|
|
||||||
|
// set select box |
||||||
|
if($i==$page3) { |
||||||
|
$smarty->assign("row2_selected", "selected"); |
||||||
|
|
||||||
|
} else { |
||||||
|
$smarty->assign("row2_selected", ""); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
$smarty->assign("subnetmask1", 255); |
||||||
|
$smarty->assign("subnetmask2", 256-($host_counter/65536)); |
||||||
|
$smarty->assign("subnetmask3", 0); |
||||||
|
$smarty->assign("subnetmask4", 0); |
||||||
|
|
||||||
|
// one select box |
||||||
|
$smarty->assign("noselect", FALSE); |
||||||
|
$smarty->assign("one_select", FALSE); |
||||||
|
$smarty->assign("two_select", TRUE); |
||||||
|
|
||||||
|
// set displayed nodes |
||||||
|
$nodes_displayed = 256; |
||||||
|
} |
||||||
|
|
||||||
|
// get nodes for this subnetview and implement the values into the array |
||||||
|
$sql = "SELECT a.asset_name, g.assetclassgroup_color, n.node_id, n.node_ip |
||||||
|
FROM |
||||||
|
asset AS a, |
||||||
|
assetclass AS c, |
||||||
|
assetclassgroup AS g, |
||||||
|
node AS n |
||||||
|
WHERE |
||||||
|
n.node_ip IN ('".implode("','",array_keys($subnetdata))."') |
||||||
|
AND n.subnet_id=? |
||||||
|
AND a.asset_id=n.asset_id |
||||||
|
AND c.assetclass_id=a.assetclass_id |
||||||
|
AND g.assetclassgroup_id=c.assetclassgroup_id"; |
||||||
|
|
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$nodes = $sth->fetchAll(); |
||||||
|
$smarty->assign("nodes", $nodes); |
||||||
|
|
||||||
|
if (count($nodes) > 0) { |
||||||
|
foreach ($nodes AS $node) { |
||||||
|
$subnetdata[$node['node_ip']] = $node; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// replace ip's in subnet-array (if necessary) |
||||||
|
// check for subnet address |
||||||
|
if (array_key_exists($subnet->address, $subnet)) { |
||||||
|
// replace |
||||||
|
$subnetdata[$subnet->address] = array("subnet_address"); |
||||||
|
} |
||||||
|
|
||||||
|
// check for broadcast address |
||||||
|
if (array_key_exists($broadcast_address, $subnet)) { |
||||||
|
// replace |
||||||
|
$subnetdata[$broadcast_address] = array("broadcast_address"); |
||||||
|
} |
||||||
|
|
||||||
|
$dhcpstart = 0; |
||||||
|
if ($subnet->dhcp_start && $subnet->dhcp_end) { |
||||||
|
$dhcpstart = ip2long($subnet->dhcp_start); |
||||||
|
$dhcpend = ip2long($subnet->dhcp_end); |
||||||
|
} |
||||||
|
|
||||||
|
// loop subnet-array and send to template |
||||||
|
// start counter |
||||||
|
// $i=1; |
||||||
|
// loop subnet-array |
||||||
|
foreach ($subnetdata AS $node_ip => $node) { |
||||||
|
|
||||||
|
// make new line? |
||||||
|
// if(($i%$_SESSION['suser_imagecount']==0 && $i!=$nodes_displayed) ? $tr="</tr><tr>" : $tr=""); |
||||||
|
|
||||||
|
// check if node-ip in DHCP-area |
||||||
|
$subnetdata[$node_ip]["dynamic"] = false; |
||||||
|
if ($dhcpstart > 0) { |
||||||
|
$ipval = ip2long($node_ip); |
||||||
|
if (($ipval >= $dhcpstart) and ($ipval <= $dhcpend)) { |
||||||
|
$subnetdata[$node_ip]["dynamic"] = true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// check node |
||||||
|
if (empty($node)) { |
||||||
|
// empty node to tpl |
||||||
|
$subnetdata[$node_ip]["url"] = 'assigniptonode.php?subnet_id=' . $subnet_id . '&node_ip='. $node_ip; |
||||||
|
$subnetdata[$node_ip]["remotetext"] = $node_ip; |
||||||
|
if ($subnetdata[$node_ip]["dynamic"]) { |
||||||
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_dynamic; |
||||||
|
} else { |
||||||
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_unused; |
||||||
|
} |
||||||
|
} else if (array_key_exists(0, $node) && $node[0]=="subnet_address") { |
||||||
|
// subnet address to tpl |
||||||
|
$subnetdata[$node_ip]["url"] = ""; |
||||||
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_subnetaddress']; |
||||||
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
||||||
|
} else if (array_key_exists(0, $node) && $node[0]=="broadcast_address") { |
||||||
|
// broadcast address to tpl |
||||||
|
$subnetdata[$node_ip]["url"] = ""; |
||||||
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_broadcastaddress']; |
||||||
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
||||||
|
} else { |
||||||
|
// node to tpl |
||||||
|
$subnetdata[$node_ip]["url"] = 'nodeview.php?node_id=' . $node['node_id']; |
||||||
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $node['asset_name']; |
||||||
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $node['assetclassgroup_color']; |
||||||
|
} |
||||||
|
|
||||||
|
// update counter |
||||||
|
// $i++; |
||||||
|
|
||||||
|
} // foreach |
||||||
|
|
||||||
|
$smarty->assign("subnetdata", $subnetdata); |
||||||
|
$smarty->assign("imagewrap", $_SESSION['suser_imagecount']); |
||||||
|
|
||||||
|
// vlans |
||||||
|
$sql = "SELECT v.vlan_id AS id, v.vlan_name AS name, |
||||||
|
v.vlan_number AS number |
||||||
|
FROM subnetvlan AS s JOIN vlan AS v USING (vlan_id) |
||||||
|
WHERE s.subnet_id=? |
||||||
|
ORDER BY v.vlan_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("vlans", $sth->fetchAll()); |
||||||
|
|
||||||
|
// locations |
||||||
|
$sql = "SELECT l.location_id, l.location_name |
||||||
|
FROM location AS l LEFT JOIN subnetlocation AS s USING (location_id) |
||||||
|
WHERE s.subnet_id=? |
||||||
|
ORDER BY l.location_name"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("locations", $sth->fetchAll()); |
||||||
|
|
||||||
|
// assetclassgroups |
||||||
|
$sql = "SELECT |
||||||
|
assetclassgroup_id AS id, |
||||||
|
assetclassgroup_name AS name, |
||||||
|
assetclassgroup_color AS color, |
||||||
|
COUNT(assetclass_id) AS counter |
||||||
|
FROM subnet |
||||||
|
LEFT JOIN node USING (subnet_id) |
||||||
|
LEFT JOIN asset USING (asset_id) |
||||||
|
LEFT JOIN assetclass USING (assetclass_id) |
||||||
|
LEFT JOIN assetclassgroup USING (assetclassgroup_id) |
||||||
|
WHERE subnet_id=? |
||||||
|
GROUP BY assetclass_id |
||||||
|
ORDER BY counter DESC"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("assetclassgroups", $sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("subnetview.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,43 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// vlan |
||||||
|
$sql = "SELECT vlan_id, vlan_number, vlan_name |
||||||
|
FROM vlan |
||||||
|
WHERE vlan_id NOT IN ( |
||||||
|
SELECT vlan_id FROM subnetvlan WHERE subnet_id=? |
||||||
|
) |
||||||
|
ORDER BY vlan_number"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
|
||||||
|
$vlans = $sth->fetchAll(); |
||||||
|
foreach ($vlans as $vlan) { |
||||||
|
$vlan_options[$vlan['vlan_id']] = $vlan['vlan_name'] . ' (' . $vlan['vlan_number']. ')'; |
||||||
|
} |
||||||
|
$smarty->assign("vlan_options", $vlan_options); |
||||||
|
|
||||||
|
$smarty->display("subnetvlanadd.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,36 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
// subnet |
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
// vlan |
||||||
|
$sql = "SELECT v.vlan_id, v.vlan_number, v.vlan_name |
||||||
|
FROM subnetvlan AS s LEFT JOIN vlan AS v USING (vlan_id) |
||||||
|
WHERE s.subnet_id=? |
||||||
|
ORDER BY v.vlan_number"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("vlans", $sth->fetchAll()); |
||||||
|
|
||||||
|
$smarty->display("subnetvlandel.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,26 @@ |
|||||||
|
<?php |
||||||
|
/***************************************************************************** |
||||||
|
IP Reg, a PHP/MySQL IPAM tool |
||||||
|
Copyright (C) 2007-2009 Wietse Warendorff (up to v0.5) |
||||||
|
Copyright (C) 2011-2023 Thomas Hooge |
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later |
||||||
|
*****************************************************************************/ |
||||||
|
|
||||||
|
include("includes.php"); |
||||||
|
|
||||||
|
$subnet_id = sanitize($_GET['subnet_id']); |
||||||
|
|
||||||
|
include("header.php"); |
||||||
|
|
||||||
|
$sql = "SELECT subnet_id AS id, subnet_address AS address, subnet_mask AS mask |
||||||
|
FROM subnet |
||||||
|
WHERE subnet_id=?"; |
||||||
|
$sth = $dbh->prepare($sql); |
||||||
|
$sth->execute([$subnet_id]); |
||||||
|
$smarty->assign("subnet", $sth->fetch(PDO::FETCH_OBJ)); |
||||||
|
|
||||||
|
$smarty->display("subnetvlanedit.tpl"); |
||||||
|
|
||||||
|
include("footer.php"); |
||||||
|
?> |
@ -0,0 +1,23 @@ |
|||||||
|
<table class="title"> |
||||||
|
<tr> |
||||||
|
<td class="header"> |
||||||
|
{$lang_comments} |
||||||
|
</td> |
||||||
|
<td align="right"> |
||||||
|
<a href="#" onClick="history.go(-1)"><img src="image.php?icon=back" alt="{$lang_cancel}"></a> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
||||||
|
|
||||||
|
<table class="info"> |
||||||
|
<tr> |
||||||
|
<td class="header"> |
||||||
|
{$lang_comments} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
<tr> |
||||||
|
<td class="value"> |
||||||
|
{$comments} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table> |
@ -1,38 +1,39 @@ |
|||||||
<form method="POST" action="location.php"> |
<form method="POST" action="submit.php"> |
||||||
<input type="hidden" name="id" value="{$location->id}"> |
<input type="hidden" name="del" value="location"> |
||||||
|
<input type="hidden" name="location_id" value="{$location->id}"> |
||||||
|
|
||||||
<table class="title"> |
<table class="title"> |
||||||
<tr> |
<tr> |
||||||
<td class="header"> |
<td class="header"> |
||||||
<img class="icon" src="images/building.png" alt="" /> |
<img class="icon" src="images/building.png" alt="" /> |
||||||
{$location->name} |
{$location_name} |
||||||
</td> |
</td> |
||||||
<td align="right"> |
<td align="right"> |
||||||
<a href="#" onClick="history.go(-1)"><img src="image.php?icon=cancel" alt="{$lang_cancel}"></a> |
<a href="#" onClick="history.go(-1)"><img src="image.php?icon=cancel" alt="{$lang_cancel}"></a> |
||||||
<input type="image" name="submit[delete]" src="images/building_delete.png" alt="{$lang_location_del}"> |
<input type="image" src="images/building_delete.png" alt="{$lang_location_del}"> |
||||||
</td> |
</td> |
||||||
</tr> |
</tr> |
||||||
</table> |
</table> |
||||||
|
|
||||||
<p> |
<p> |
||||||
|
|
||||||
<table class="info"> |
<table class="info"> |
||||||
<tr> |
<tr> |
||||||
<td class="header"> |
<td class="header"> |
||||||
{$lang_location_del} |
{$lang_location_del} |
||||||
</td> |
</td> |
||||||
<td class="header_right"> |
<td class="header_right"> |
||||||
|
|
||||||
</td> |
</td> |
||||||
</tr> |
</tr> |
||||||
<tr> |
<tr> |
||||||
<td class="label"> |
<td class="label"> |
||||||
{$lang_location_name} |
{$lang_location_name} |
||||||
</td> |
</td> |
||||||
<td class="value"> |
<td class="value"> |
||||||
<a href="location.php?f=view&id={$location->id}">{$location->name}</a> |
<a href="locationview.php?location_id={$location->id}">{$location->name}</a> |
||||||
</td> |
</td> |
||||||
</tr> |
</tr> |
||||||
</table> |
</table> |
||||||
|
|
||||||
</form> |
</form> |
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in new issue