$User = new User($Database); $Subnets = new Subnets($Database); $Tools = new Tools($Database); $Addresses = new Addresses($Database); //$Ping = new Scan ($Database); $DNS = new DNS($Database); $validNM = $GLOBALS['Net_IPv4_Netmask_Map']; # verify that user is logged in $User->check_user_session(); # id must be numeric is_numeric($_POST['id']) || strlen($_POST['id']) == 0 ?: $Result->show("danger", _("Invalid ID"), true); # get IP address id $id = $_POST['id']; $subnetId = $_POST['subnetId']; $address = (array) $Addresses->fetch_address(null, $id); $gateway = $Subnets->find_gateway($subnetId); $resolve = $DNS->resolve_address($address['ip_addr'], $address['dns_name'], false, $subnet['nameserverId']); $subnet = (array) $Subnets->fetch_subnet(null, $address['subnetId']); $mask = $validNM[$subnet['mask']]; # validate post #is_numeric($_POST['subnetId']) ?: $Result->show("danger", _("Invalid ID"), true, true, false, true); #if(is_numeric($id)) { # strlen($id)!=0 ?: $Result->show("danger", _("Invalid ID"), true, true, false, true); # fetch address # $address = (array) $Addresses->fetch_address(null, $id); #} // from adding new IP, validate #else { # $validate = $Subnets->identify_address ($_POST['id'])=="IPv4" ? filter_var($_POST['id'], FILTER_VALIDATE_IP) : filter_var($_POST['id'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); # if ($validate===false) { $Result->show("danger", _("Invalid IP address"), true, true, false, true); } # else {
sizeof($address) > 0 ?: $Result->show("danger", _("Invalid ID"), true); sizeof($subnet) > 0 ?: $Result->show("danger", _("Invalid subnet"), true); # set title $title = _('IP address details') . ' :: ' . $address['ip']; # address $content[] = "• " . _('IP address') . ": \t\t {$address['ip']}/{$subnet['mask']}"; # description empty($address['description']) ?: ($content[] = "• " . _('Description') . ":\t\t {$address['description']}"); # hostname empty($address['dns_name']) ?: ($content[] = "• " . _('Hostname') . ": \t {$address['dns_name']}"); # subnet desc $s_descrip = empty($subnet['description']) ? "" : " (" . $subnet['description'] . ")"; # subnet $content[] = "• " . _('Subnet') . ": \t\t {$subnet['ip']}/{$subnet['mask']} {$s_descrip}"; # gateway $gateway = $Subnets->find_gateway($subnet['id']); if ($gateway !== false) { $content[] = "• " . _('Gateway') . ": \t\t" . $Subnets->transform_to_dotted($gateway->ip_addr); } # VLAN empty($subnet['vlanId']) ?: ($content[] = "• " . _('VLAN ID') . ": \t\t {$vlan['number']} ({$vlan['name']})"); # Nameserver sets if (!empty($subnet['nameserverId'])) { $nslist = str_replace(";", ", ", $nameservers['namesrv1']); $content[] = "• " . _('Nameservers') . ": \t {$nslist} ({$nameservers['name']})"; } # Switch if (!empty($address['switch'])) { # get device by id $device = (array) $Tools->fetch_object("devices", "id", $address['switch']); !sizeof($device) > 1 ?: ($content[] = "• " . _('Device') . ": \t\t {$device['hostname']}");
} //insert to ipaddresses table $values = array("action" => "add", "ip_addr" => $Addresses->transform_address($_POST['ip_addr'], "decimal"), "subnetId" => $_POST['subnetId'], "description" => @$_POST['description'], "dns_name" => @$_POST['dns_name'], "mac" => @$_POST['mac'], "owner" => @$_POST['owner'], "state" => @$_POST['state'], "switch" => @$_POST['switch'], "port" => @$_POST['port'], "note" => @$_POST['note']); if (!$Addresses->modify_address($values)) { $Result->show("danger", _("Failed to create IP address"), true); } //accept message $values2 = array("id" => $_POST['requestId'], "processed" => 1, "accepted" => 1, "adminComment" => $comment); if (!$Admin->object_modify("requests", "edit", "id", $values2)) { $Result->show("danger", _("Cannot confirm IP address"), true); } else { $Result->show("success", _("IP request accepted/rejected"), false); } # send mail //save subnt $tmp['subnetId'] = $_POST['subnetId']; unset($_POST['subnetId']); // gateway $gateway = $Subnets->find_gateway($tmp['subnetId']); if ($gateway !== false) { $tmp['gateway'] = $Subnets->transform_address($gateway->ip_addr, "dotted"); } //set vlan $vlan = $Tools->fetch_object("vlans", "vlanId", $subnet['vlanId']); $tmp['vlan'] = $vlan == false ? "" : $vlan->number . " - " . $vlan->description; //set dns $dns = $Tools->fetch_object("nameservers", "id", $subnet['nameserverId']); $tmp['dns'] = $dns == false ? "" : $dns->description . " <br> " . str_replace(";", ", ", $dns->namesrv1); $_POST = array_merge($tmp, $_POST); $Tools->ip_request_send_mail("accept", $_POST); }