$record_id = "-1";
if (isset($_GET['id']) && v_num($_GET['id'])) {
    $record_id = $_GET['id'];
}
$zone_templ_id = "-1";
if (isset($_GET['zone_templ_id']) && v_num($_GET['zone_templ_id'])) {
    $zone_templ_id = $_GET['zone_templ_id'];
}
$confirm = "-1";
if (isset($_GET['confirm']) && v_num($_GET['confirm'])) {
    $confirm = $_GET['confirm'];
}
if ($record_id == "-1" || $zone_templ_id == "-1") {
    error(ERR_INV_INPUT);
} else {
    $owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
    if ($confirm == '1' && $owner) {
        if (delete_zone_templ_record($record_id)) {
            success(SUC_RECORD_DEL);
        }
    } else {
        $templ_details = get_zone_templ_details($zone_templ_id);
        $record_info = get_zone_templ_record_from_id($record_id);
        echo "     <h2>" . _('Delete record in zone') . " \"" . $templ_details['name'] . "\"</h2>\n";
        if (!do_hook('verify_permission', 'zone_master_add') || !$owner) {
            error(ERR_PERM_DEL_RECORD);
        } else {
            echo "     <table>\n";
            echo "      <tr>\n";
            echo "       <th>Name</th>\n";
            echo "       <th>Type</th>\n";
Esempio n. 2
0
/** Add a zone template from zone / another template
 *
 * @param string $template_name template name
 * @param string $description description
 * @param int $userid user id
 * @param mixed[] $records array of zone records
 * @param string $domain domain to substitute with '[ZONE]' (optional) [default=null]
 *
 * @return boolean true on success, false otherwise
 */
function add_zone_templ_save_as($template_name, $description, $userid, $records, $domain = null)
{
    global $db;
    global $db_type;
    if (!do_hook('verify_permission', 'zone_master_add')) {
        error(ERR_PERM_ADD_ZONE_TEMPL);
        return false;
    } else {
        $result = $db->beginTransaction();
        $query = "INSERT INTO zone_templ (name, descr, owner)\n\t\t\tVALUES (" . $db->quote($template_name, 'text') . ", " . $db->quote($description, 'text') . ", " . $db->quote($userid, 'integer') . ")";
        $result = $db->exec($query);
        if ($db_type == 'pgsql') {
            $zone_templ_id = $db->lastInsertId('zone_templ_id_seq');
        } else {
            $zone_templ_id = $db->lastInsertId();
        }
        $owner = get_zone_templ_is_owner($zone_templ_id, $_SESSION['userid']);
        foreach ($records as $record) {
            if ($record['type'] == "SPF") {
                $content = $db->quote(stripslashes('\\"' . $record['content'] . '\\"'), 'text');
            } else {
                $content = $db->quote($record['content'], 'text');
            }
            $name = $domain ? preg_replace('/' . $domain . '/', '[ZONE]', $record['name']) : $record['name'];
            $content = $domain ? preg_replace('/' . $domain . '/', '[ZONE]', $content) : $content;
            $query2 = "INSERT INTO zone_templ_records (zone_templ_id, name, type, content, ttl, prio) VALUES (" . $db->quote($zone_templ_id, 'integer') . "," . $db->quote($name, 'text') . "," . $db->quote($record['type'], 'text') . "," . $content . "," . $db->quote($record['ttl'], 'integer') . "," . $db->quote(isset($record['prio']) ? $record['prio'] : 0, 'integer') . ")";
            $result = $db->exec($query2);
        }
        if (PEAR::isError($result)) {
            $result = $db->rollback();
        } else {
            $result = $db->commit();
        }
    }
    return true;
}