771 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			771 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?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']);
 | |
| 
 | |
|             $sql = "INSERT INTO asset
 | |
|                         (asset_name, asset_hostname, assetclass_id, asset_info)
 | |
|                     VALUE 
 | |
|                         (?, ?, ?, ?)";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$name, $hostname, $assetclass_id, $info]);
 | |
| 
 | |
|             header_location("assetview.php?asset_id=" . $dbh->lastInsertId());
 | |
|             break;
 | |
| 
 | |
|         case ("assetclass") :
 | |
|             $assetclass_name = sanitize($_POST['assetclass_name']);
 | |
|             $assetclassgroup_id = sanitize($_POST['assetclassgroup_id']);
 | |
| 
 | |
|             $sql = "INSERT INTO assetclass
 | |
|                           (assetclass_name, assetclassgroup_id)
 | |
|                 VALUE
 | |
|                     (?, ?)";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$assetclass_name, $assetclassgroup_id]);
 | |
| 
 | |
|             header_location("assetclassview.php?assetclass_id=" . $dbh->lastInsertId());
 | |
|             break;
 | |
| 
 | |
|         case ("assetclassgroup") :
 | |
|             $name = sanitize($_POST['assetclassgroup_name']);
 | |
|             $color = preg_replace("|[^a-zA-Z0-9]|", "", strtoupper(sanitize($_POST['assetclassgroup_color'])));
 | |
| 
 | |
|             $sql = "INSERT INTO assetclassgroup
 | |
|                         (assetclassgroup_name, assetclassgroup_color)
 | |
|                     VALUE
 | |
|                         (?, ?)";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$name, $color]);
 | |
| 
 | |
|             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']);
 | |
| 
 | |
|             $sql = "INSERT INTO vlan (vlan_name, vlan_number, vlan_info)
 | |
|                     VALUE (?, ?, ?)";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$vlan_name, $vlan_number, $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_hostname = sanitize($_POST['asset_hostname']);
 | |
|             $assetclass_id = sanitize($_POST['assetclass_id']);
 | |
| 
 | |
|             $sql = "UPDATE asset SET
 | |
|                         asset_name=?, asset_info=?, asset_hostname=?,
 | |
|                         assetclass_id=?
 | |
|                     WHERE asset_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$asset_name, $asset_info, $asset_hostname, $assetclass_id, $asset_id]);
 | |
| 
 | |
|             header_location("assetview.php?asset_id=" . $asset_id);
 | |
| 
 | |
|         case ("assetclass") :
 | |
|             $assetclass_id = sanitize($_POST['assetclass_id']);
 | |
|             $assetclass_name = sanitize($_POST['assetclass_name']);
 | |
|             $assetclassgroup_id = sanitize($_POST['assetclassgroup_id']);
 | |
| 
 | |
|             $sql = "UPDATE assetclass SET
 | |
|                         assetclass_name=?, assetclassgroup_id=?
 | |
|                     WHERE assetclass_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$assetclass_name, $assetclassgroup_id, $assetclass_id]);
 | |
| 
 | |
|             header_location("assetclassview.php?assetclass_id=" . $assetclass_id);
 | |
|             break;
 | |
| 
 | |
|         case ("assetclassgroup") :
 | |
|             $assetclassgroup_id = sanitize($_POST['assetclassgroup_id']);
 | |
|             $assetclassgroup_name = sanitize($_POST['assetclassgroup_name']);
 | |
|             $assetclassgroup_color = preg_replace("|[^a-zA-Z0-9]|", "", strtoupper(sanitize($_POST['assetclassgroup_color'])));
 | |
| 
 | |
|             $sql = "UPDATE assetclassgroup SET
 | |
|                         assetclassgroup_name=?, assetclassgroup_color=?
 | |
|                     WHERE assetclassgroup_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$assetclassgroup_name, $assetclassgroup_color, $assetclassgroup_id]);
 | |
| 
 | |
|             header_location("assetclassgroupview.php?assetclassgroup_id=" . $assetclassgroup_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']);
 | |
|             $menu_assets = sanitize($_POST['user_menu_assets']);
 | |
|             $menu_assetclasses = sanitize($_POST['user_menu_assetclasses']);
 | |
|             $menu_assetclassgroups = sanitize($_POST['user_menu_assetclassgroups']);
 | |
|             $menu_locations = sanitize($_POST['user_menu_locations']);
 | |
|             $menu_nodes = sanitize($_POST['user_menu_nodes']);
 | |
|             $menu_subnets = sanitize($_POST['user_menu_subnets']);
 | |
|             $menu_users = sanitize($_POST['user_menu_users']);
 | |
|             $menu_vlans = sanitize($_POST['user_menu_vlans']);
 | |
|             $menu_zones = sanitize($_POST['user_menu_zones']);
 | |
|             $tooltips = sanitize($_POST['user_tooltips']);
 | |
| 
 | |
|             $sql = "UPDATE user SET
 | |
|                     user_language=?, user_imagesize=?, user_imagecount=?, user_mac=?, user_dateformat=?,
 | |
|                     user_dns1suffix=?, user_dns2suffix=?, user_menu_assets=?, user_menu_assetclasses=?,
 | |
|                     user_menu_assetclassgroups=?, user_menu_locations=?, user_menu_nodes=?,
 | |
|                     user_menu_subnets=?, user_menu_users=?, user_menu_vlans=?, user_menu_zones=?,
 | |
|                     user_tooltips=?
 | |
|                 WHERE
 | |
|                     user_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$language, $imagesize, $imagecount, $mac, $dateformat,
 | |
|                            $dns1suffix, $dns2suffix, $menu_assets, $menu_assetclasses,
 | |
|                            $menu_assetclassgroups, $menu_locations, $menu_nodes,
 | |
|                            $menu_subnets, $menu_users, $menu_vlans, $menu_zones,
 | |
|                            $tooltips, $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_locations'] = $menu_locations;
 | |
|             $_SESSION['suser_menu_nodes'] = $menu_nodes;
 | |
|             $_SESSION['suser_menu_subnets'] = $menu_subnets;
 | |
|             $_SESSION['suser_menu_users'] = $menu_users;
 | |
|             $_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 (!strcmp(md5($currentpass), $userpass)) {
 | |
|                 if (!strcmp($user_newpass1, $user_newpass2)) {
 | |
|                     $sth = $dbh->prepare("UPDATE user SET user_pass=? WHERE user_id=?");
 | |
|                     $sth->execute([md5($user_newpass1), $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']);
 | |
| 
 | |
|             $sql = "UPDATE user SET user_name=?, user_displayname=? WHERE user_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$user_name ,$user_displayname, $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']);
 | |
| 
 | |
|             $sql = "UPDATE vlan SET vlan_name=?, vlan_number=?, vlan_info=? WHERE vlan_id=?";
 | |
|             $sth = $dbh->prepare($sql);
 | |
|             $sth->execute([$vlan_name, $vlan_number, $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);
 | |
| ?>
 |