print "\t<td class='info2'>" . _('disabled') . "</td>"; } # no print "</tr>"; } # autocreate PTR records if ($User->settings->enablePowerDNS == 1) { // initialize class if ($subnet['DNSrecursive'] == 1 || $subnet['DNSrecords'] == 1) { # powerDNS class $PowerDNS = new PowerDNS($Database); } if ($subnet['DNSrecursive'] == 1) { if ($PowerDNS->db_check() !== false) { // set name $zone = $PowerDNS->get_ptr_zone_name($subnet['ip'], $subnet['mask']); // fetch domain $domain = $PowerDNS->fetch_domain_by_name($zone); // count PTR records if ($domain !== false) { if ($User->is_admin()) { $btns[] = "<div class='btn-group'>"; $btns[] = " <a class='btn btn-default btn-xs' href='" . create_link("administration", "powerDNS", "domains", "records", $domain->name) . "'><i class='fa fa-eye'></i></a>"; $btns[] = "\t<a class='btn btn-default btn-xs refreshPTRsubnet' data-subnetid='{$subnet['id']}'><i class='fa fa-refresh'></i></a>"; $btns[] = "</div>"; $btns = implode("\n", $btns); } else { $btns = ""; } $zone = "<span class='text-muted'>(domain {$zone})</span> <span class='badge'>" . $PowerDNS->count_domain_records_by_type($domain->id, "PTR") . " records</span>"; } else {
# propagate changes if (sizeof($Subnets->slaves) > 0) { foreach ($Subnets->slaves as $slaveId) { $Admin->object_modify("subnets", "edit", "id", array_merge(array("id" => $slaveId), $values)); } } } # powerDNS if ($User->settings->enablePowerDNS == 1) { # powerDNS class $PowerDNS = new PowerDNS($Database); if ($PowerDNS->db_check() === false) { $Result->show("danger", _("Cannot connect to powerDNS database"), true); } // set zone $zone = $_POST['action'] == "add" ? $PowerDNS->get_ptr_zone_name($_POST['subnet'], $_POST['mask']) : $PowerDNS->get_ptr_zone_name($subnet_old_details['ip'], $subnet_old_details['mask']); // try to fetch domain $domain = $PowerDNS->fetch_domain_by_name($zone); // POST DNSrecursive not set, fake it if old is also 0 if (!isset($_POST['DNSrecursive']) && @$subnet_old_details['DNSrecursive'] == 0) { $_POST['DNSrecursive'] = 0; } //delete if ($_POST['action'] == "delete") { // if zone exists if ($domain !== false) { print "<hr><p class='hidden alert-danger'></p>"; print "<div class='alert alert-warning'>"; print "\t<div class='btn-group pull-right'>"; print "\t<a class='btn btn-danger btn-xs' id='editDomainSubmit'>" . _('Yes') . "</a>"; print "\t<a class='btn btn-default btn-xs hidePopupsReload'>" . _('No') . "</a>";
# verify that user is logged in $User->check_user_session(); # fetch subnet $subnet = $Subnets->fetch_subnet("id", $_POST['subnetId']); # checks if ($subnet === false) { $Result->show("danger", _("Invalid subnet"), true); } if ($subnet->DNSrecursive != 1) { $Result->show("danger", _("Automatic PTR creation for this subnet is disabled"), true); } if ($User->settings->enablePowerDNS != 1) { $Result->show("danger", _("PowerDNS not enabled"), true); } // set zone $zone = $PowerDNS->get_ptr_zone_name($subnet->ip, $subnet->mask); // try to fetch domain $domain = $PowerDNS->fetch_domain_by_name($zone); // default values $values = json_decode($User->settings->powerDNS, true); $values['name'] = $zone; // domain missing, create it and default records if ($domain === false) { // create domain $PowerDNS->domain_edit("add", array("name" => $zone, "type" => "NATIVE")); // create default records $PowerDNS->create_default_records($values); } // remove existing records and links $PowerDNS->remove_all_ptr_records($domain->id); $Addresses->ptr_unlink_subnet_addresses($subnet->id);