exit; } if (zone_id_exists($zone_id) == "0") { error(ERR_ZONE_NOT_EXIST); include_once "inc/footer.inc.php"; exit; } if (isset($_POST['sign_zone'])) { $zone_name = get_zone_name_from_id($zone_id); update_soa_serial($zone_id); dnssec_secure_zone($zone_name); dnssec_rectify_zone($zone_id); } if (isset($_POST['unsign_zone'])) { $zone_name = get_zone_name_from_id($zone_id); dnssec_unsecure_zone($zone_name); update_soa_serial($zone_id); } $domain_type = get_domain_type($zone_id); $record_count = count_zone_records($zone_id); $zone_templates = get_list_zone_templ($_SESSION['userid']); $zone_template_id = get_zone_template($zone_id); echo " <h2>" . _('Edit zone') . " \"" . get_zone_name_from_id($zone_id) . "\"</h2>\n"; echo " <div class=\"showmax\">\n"; show_pages($record_count, $iface_rowamount, $zone_id); echo " </div>\n"; $records = get_records_from_domain_id($zone_id, ROWSTART, $iface_rowamount, RECORD_SORT_BY); if ($records == "-1") { echo " <p>" . _("This zone does not have any records. Weird.") . "</p>\n"; } else { echo " <form method=\"post\" action=\"\">\n";
/** Delete array of domains * * Deletes a domain by a given id. * Function always succeeds. If the field is not found in the database, thats what we want anyway. * * @param int[] $domains Array of Domain IDs to delete * * @return boolean true on success, false otherwise */ function delete_domains($domains) { global $db; global $pdnssec_use; $error = false; $return = false; $response = $db->beginTransaction(); foreach ($domains as $id) { if (do_hook('verify_permission', 'zone_content_edit_others')) { $perm_edit = "all"; } elseif (do_hook('verify_permission', 'zone_content_edit_own')) { $perm_edit = "own"; } else { $perm_edit = "none"; } $user_is_zone_owner = do_hook('verify_user_is_owner_zoneid', $id); if ($perm_edit == "all" || $perm_edit == "own" && $user_is_zone_owner == "1") { if (is_numeric($id)) { $zone_type = get_domain_type($id); if ($pdnssec_use && $zone_type == 'MASTER') { $zone_name = get_zone_name_from_id($id); dnssec_unsecure_zone($zone_name); } $db->exec("DELETE FROM zones WHERE domain_id=" . $db->quote($id, 'integer')); $db->exec("DELETE FROM domains WHERE id=" . $db->quote($id, 'integer')); $db->exec("DELETE FROM records WHERE domain_id=" . $db->quote($id, 'integer')); $db->query("DELETE FROM records_zone_templ WHERE domain_id=" . $db->quote($id, 'integer')); } else { error(sprintf(ERR_INV_ARGC, "delete_domains", "id must be a number")); $error = true; } } else { error(ERR_PERM_DEL_ZONE); $error = true; } } if (PEAR::isError($response)) { $response = $db->rollback(); $commit = false; } else { $response = $db->commit(); $commit = true; } if (true == $commit && false == $error) { $return = true; } return $return; }