$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";
/** 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; }