Esempio n. 1
0
        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 {
Esempio n. 2
0
     # 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);