Commit 6047a107 authored by Ad Schellevis's avatar Ad Schellevis Committed by Franco Fichtner

(legacy) refactor services_rfc2136_edit.php

(cherry picked from commit 5bc1fdfa)
parent 2cb1c4bd
<?php <?php
/* /*
Copyright (C) 2014-2015 Deciso B.V. Copyright (C) 2014-2016 Deciso B.V.
Copyright (C) 2008 Ermal Luçi Copyright (C) 2008 Ermal Luçi
All rights reserved. All rights reserved.
...@@ -35,210 +35,217 @@ require_once("pfsense-utils.inc"); ...@@ -35,210 +35,217 @@ require_once("pfsense-utils.inc");
if (!isset($config['dnsupdates']['dnsupdate'])) { if (!isset($config['dnsupdates']['dnsupdate'])) {
$config['dnsupdates']['dnsupdate'] = array(); $config['dnsupdates']['dnsupdate'] = array();
} }
$a_rfc2136 = &$config['dnsupdates']['dnsupdate']; $a_rfc2136 = &$config['dnsupdates']['dnsupdate'];
if (is_numericint($_GET['id'])) if ($_SERVER['REQUEST_METHOD'] === 'GET') {
if (isset($_GET['id']) && !empty($a_rfc2136[$_GET['id']])) {
$id = $_GET['id']; $id = $_GET['id'];
if (isset($_POST['id']) && is_numericint($_POST['id'])) }
$id = $_POST['id'];
if (isset($id) && isset($a_rfc2136[$id])) { if (isset($id)) {
$pconfig['enable'] = isset($a_rfc2136[$id]['enable']); $pconfig['enable'] = isset($a_rfc2136[$id]['enable']);
$pconfig['host'] = $a_rfc2136[$id]['host']; } else {
$pconfig['ttl'] = $a_rfc2136[$id]['ttl']; $pconfig['enable'] = true;
if (!$pconfig['ttl']) }
$pconfig['ttl'] = 60; $pconfig['host'] = isset($id) && !empty($a_rfc2136[$id]['host']) ? $a_rfc2136[$id]['host'] : null;
$pconfig['keydata'] = $a_rfc2136[$id]['keydata']; $pconfig['ttl'] = isset($id) &&!empty($a_rfc2136[$id]['ttl']) ? $a_rfc2136[$id]['ttl'] : 60;
$pconfig['keyname'] = $a_rfc2136[$id]['keyname']; $pconfig['keydata'] = isset($id) &&!empty($a_rfc2136[$id]['keydata']) ? $a_rfc2136[$id]['keydata'] : null;
$pconfig['keytype'] = $a_rfc2136[$id]['keytype']; $pconfig['keyname'] = isset($id) &&!empty($a_rfc2136[$id]['keyname']) ? $a_rfc2136[$id]['keyname'] : null;
if (!$pconfig['keytype']) $pconfig['keytype'] = isset($id) &&!empty($a_rfc2136[$id]['keytype']) ? $a_rfc2136[$id]['keytype'] : "zone";
$pconfig['keytype'] = "zone"; $pconfig['server'] = isset($id) &&!empty($a_rfc2136[$id]['server']) ? $a_rfc2136[$id]['server'] : null;
$pconfig['server'] = $a_rfc2136[$id]['server']; $pconfig['interface'] = isset($id) &&!empty($a_rfc2136[$id]['interface']) ? $a_rfc2136[$id]['interface'] : null;
$pconfig['interface'] = $a_rfc2136[$id]['interface']; $pconfig['descr'] = isset($id) &&!empty($a_rfc2136[$id]['descr']) ? $a_rfc2136[$id]['descr'] : null;
$pconfig['usetcp'] = isset($a_rfc2136[$id]['usetcp']); $pconfig['usetcp'] = isset($a_rfc2136[$id]['usetcp']);
$pconfig['usepublicip'] = isset($a_rfc2136[$id]['usepublicip']); $pconfig['usepublicip'] = isset($a_rfc2136[$id]['usepublicip']);
$pconfig['descr'] = $a_rfc2136[$id]['descr'];
} } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['id']) && !empty($a_rfc2136[$_POST['id']])) {
if ($_POST) { $id = $_POST['id'];
}
unset($input_errors); $input_errors = array();
$pconfig = $_POST; $pconfig = $_POST;
/* input validation */ /* input validation */
$reqdfields = array(); $reqdfields = array();
$reqdfieldsn = array(); $reqdfieldsn = array();
$reqdfields = array_merge($reqdfields, explode(" ", "host ttl keyname keydata")); $reqdfields = array_merge($reqdfields, explode(" ", "host ttl keyname keydata"));
$reqdfieldsn = array_merge($reqdfieldsn, array(gettext("Hostname"), gettext("TTL"), gettext("Key name"), gettext("Key"))); $reqdfieldsn = array_merge($reqdfieldsn, array(gettext("Hostname"), gettext("TTL"), gettext("Key name"), gettext("Key")));
do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors); do_input_validation($pconfig, $reqdfields, $reqdfieldsn, $input_errors);
if (($_POST['host'] && !is_domain($_POST['host']))) if (!empty($pconfig['host']) && !is_domain($pconfig['host'])) {
$input_errors[] = gettext("The DNS update host name contains invalid characters."); $input_errors[] = gettext("The DNS update host name contains invalid characters.");
if (($_POST['ttl'] && !is_numericint($_POST['ttl']))) }
if (!empty($pconfig['ttl']) && !is_numericint($pconfig['ttl'])) {
$input_errors[] = gettext("The DNS update TTL must be an integer."); $input_errors[] = gettext("The DNS update TTL must be an integer.");
if (($_POST['keyname'] && !is_domain($_POST['keyname']))) }
if (!empty($pconfig['keyname']) && !is_domain($pconfig['keyname'])) {
$input_errors[] = gettext("The DNS update key name contains invalid characters."); $input_errors[] = gettext("The DNS update key name contains invalid characters.");
}
if (!$input_errors) { if (count($input_errors) == 0) {
$rfc2136 = array(); $rfc2136 = array();
$rfc2136['enable'] = $_POST['enable'] ? true : false; $rfc2136['enable'] = !empty($pconfig['enable']);
$rfc2136['host'] = $_POST['host']; $rfc2136['host'] = $pconfig['host'];
$rfc2136['ttl'] = $_POST['ttl']; $rfc2136['ttl'] = $pconfig['ttl'];
$rfc2136['keyname'] = $_POST['keyname']; $rfc2136['keyname'] = $pconfig['keyname'];
$rfc2136['keytype'] = $_POST['keytype']; $rfc2136['keytype'] = $pconfig['keytype'];
$rfc2136['keydata'] = $_POST['keydata']; $rfc2136['keydata'] = $pconfig['keydata'];
$rfc2136['server'] = $_POST['server']; $rfc2136['server'] = $pconfig['server'];
$rfc2136['usetcp'] = $_POST['usetcp'] ? true : false; $rfc2136['usetcp'] = !empty($pconfig['usetcp']);
$rfc2136['usepublicip'] = $_POST['usepublicip'] ? true : false; $rfc2136['usepublicip'] = !empty($pconfig['usepublicip']);
$rfc2136['interface'] = $_POST['interface']; $rfc2136['interface'] = $pconfig['interface'];
$rfc2136['descr'] = $_POST['descr']; $rfc2136['descr'] = $pconfig['descr'];
if (isset($id) && $a_rfc2136[$id]) if (isset($id)) {
$a_rfc2136[$id] = $rfc2136; $a_rfc2136[$id] = $rfc2136;
else } else {
$a_rfc2136[] = $rfc2136; $a_rfc2136[] = $rfc2136;
}
write_config(gettext("New/Edited RFC2136 dnsupdate entry was posted.")); write_config(gettext("New/Edited RFC2136 dnsupdate entry was posted."));
if ($_POST['Submit'] == gettext("Save & Force Update")) if (!empty($pconfig['force'])) {
$retval = services_dnsupdate_process("", $rfc2136['host'], true); services_dnsupdate_process("", $rfc2136['host'], true);
else } else {
$retval = services_dnsupdate_process(); services_dnsupdate_process();
}
header("Location: services_rfc2136.php"); header("Location: services_rfc2136.php");
exit; exit;
} }
} }
include("head.inc");
?>
legacy_html_escape_form_data($pconfig);
include("head.inc");
?>
<body> <body>
<?php include("fbegin.inc"); ?> <?php include("fbegin.inc"); ?>
<section class="page-content-main"> <section class="page-content-main">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<?php if (isset($input_errors) && count($input_errors) > 0) print_input_errors($input_errors); ?> <?php if (isset($input_errors) && count($input_errors) > 0) print_input_errors($input_errors); ?>
<?php if (isset($savemsg)) print_info_box($savemsg); ?> <?php if (isset($savemsg)) print_info_box($savemsg); ?>
<section class="col-xs-12"> <section class="col-xs-12">
<div class="content-box"> <div class="content-box">
<form method="post" name="iform" id="iform">
<form action="services_rfc2136_edit.php" method="post" name="iform" id="iform">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-sort"> <table class="table table-striped">
<tr> <tr>
<td colspan="2" valign="top" class="optsect_t"> <td width="22%"><strong><?=gettext("RFC 2136 client");?></strong></td>
<table border="0" cellspacing="0" cellpadding="0" width="100%" summary="title"> <td width="78%" align="right">
<tr><td class="optsect_s"><strong><?=gettext("RFC 2136 client");?></strong></td></tr> <small><?=gettext("full help"); ?> </small>
</table> <i class="fa fa-toggle-off text-danger" style="cursor: pointer;" id="show_all_help_page" type="button"></i></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Enable");?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Enable");?></td>
<td width="78%" class="vtable"> <td>
<input name="enable" type="checkbox" id="enable" value="yes" <?php if ($pconfig['enable']) echo "checked=\"checked\""; ?> /> <input name="enable" type="checkbox" id="enable" value="yes" <?=!empty($pconfig['enable']) ? "checked=\"checked\"" : ""; ?> />
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Interface to monitor");?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Interface to monitor");?></td>
<td width="78%" class="vtable"> <td>
<select name="interface" class="formselect" id="interface"> <select name="interface" class="selectpicker" id="requestif">
<?php $iflist = get_configured_interface_with_descr(); <?php
foreach ($iflist as $if => $ifdesc):?> foreach (get_configured_interface_with_descr() as $if => $ifdesc):?>
<option value="<?=$if;?>" <?php if ($pconfig['interface'] == $if) echo "selected=\"selected\"";?>><?=$ifdesc;?></option> <option value="<?=$if;?>" <?=$pconfig['interface'] == $if ? "selected=\"selected\"" : "";?>>
<?php endforeach; ?> <?=htmlspecialchars($ifdesc);?>
</option>
<?php
endforeach;?>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Hostname");?></td> <td><a id="help_for_host" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Hostname");?></td>
<td width="78%" class="vtable"> <td>
<input name="host" type="text" class="formfld unknown" id="host" size="30" value="<?=htmlspecialchars($pconfig['host']);?>" /> <input name="host" type="text" id="host" value="<?=$pconfig['host'];?>" />
<br /><span><?= gettext('Fully qualified hostname of the host to be updated.') ?></span> <div class="hidden" for="help_for_host">
<?= gettext('Fully qualified hostname of the host to be updated.') ?>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top" class="vncellreq"><?=gettext("TTL"); ?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("TTL"); ?> (<?=gettext("seconds");?>)</td>
<td class="vtable"> <td>
<input name="ttl" type="text" class="formfld unknown" id="ttl" size="6" value="<?=htmlspecialchars($pconfig['ttl']);?>" /> <input name="ttl" type="text" id="ttl" value="<?=$pconfig['ttl'];?>" />
<?=gettext("seconds");?></td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top" class="vncellreq"><?=gettext("Key name");?></td> <td><a id="help_for_keyname" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Key name");?></td>
<td class="vtable"> <td>
<input name="keyname" type="text" class="formfld unknown" id="keyname" size="30" value="<?=htmlspecialchars($pconfig['keyname']);?>" /> <input name="keyname" type="text" id="keyname" value="<?=$pconfig['keyname'];?>" />
<br /> <div class="hidden" for="help_for_keyname">
<?=gettext("This must match the setting on the DNS server.");?></td> <?=gettext("This must match the setting on the DNS server.");?>
</div>
</td>
</tr> </tr>
<tr> <tr>
<td valign="top" class="vncellreq"><?=gettext("Key type");?> </td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Key type");?> </td>
<td class="vtable"> <td>
<input name="keytype" type="radio" value="zone" <?php if ($pconfig['keytype'] == "zone") echo "checked=\"checked\""; ?> /> <?=gettext("Zone");?> &nbsp; <input name="keytype" type="radio" value="zone" <?= $pconfig['keytype'] == "zone" ? "checked=\"checked\"" :""; ?> /> <?=gettext("Zone");?> &nbsp;
<input name="keytype" type="radio" value="host" <?php if ($pconfig['keytype'] == "host") echo "checked=\"checked\""; ?> /> <?=gettext("Host");?> &nbsp; <input name="keytype" type="radio" value="host" <?= $pconfig['keytype'] == "host" ? "checked=\"checked\"" :""; ?> /> <?=gettext("Host");?> &nbsp;
<input name="keytype" type="radio" value="user" <?php if ($pconfig['keytype'] == "user") echo "checked=\"checked\""; ?> /><?=gettext(" User");?> <input name="keytype" type="radio" value="user" <?= $pconfig['keytype'] == "user" ? "checked=\"checked\"" :""; ?> /> <?=gettext(" User");?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td valign="top" class="vncellreq"><?=gettext("Key");?></td> <td><a id="help_for_keydata" href="#" class="showhelp"><i class="fa fa-info-circle"></i></a> <?=gettext("Key");?></td>
<td class="vtable"> <td>
<input name="keydata" type="text" class="formfld unknown" id="keydata" size="70" value="<?=htmlspecialchars($pconfig['keydata']);?>" /> <input name="keydata" type="text" id="keydata" size="70" value="<?=htmlspecialchars($pconfig['keydata']);?>" />
<br /> <div class="hidden" for="help_for_keydata">
<?=gettext("Paste an HMAC-MD5 key here.");?></td> <?=gettext("Paste an HMAC-MD5 key here.");?>
</div>
</td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Server");?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Server");?></td>
<td width="78%" class="vtable"> <td>
<input name="server" type="text" class="formfld" id="server" size="30" value="<?=htmlspecialchars($pconfig['server'])?>" /> <input name="server" type="text" class="formfld" id="server" size="30" value="<?=$pconfig['server'];?>" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Protocol");?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Protocol");?></td>
<td width="78%" class="vtable"> <td>
<input name="usetcp" type="checkbox" id="usetcp" value="<?=gettext("yes");?>" <?php if ($pconfig['usetcp']) echo "checked=\"checked\""; ?> /> <input name="usetcp" type="checkbox" id="usetcp" value="<?=gettext("yes");?>" <?=!empty($pconfig['usetcp']) ? "checked=\"checked\"" : ""; ?> />
<strong><?=gettext("Use TCP instead of UDP");?></strong></td> <strong><?=gettext("Use TCP instead of UDP");?></strong>
</td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Use Public IP");?></td> <td><i class="fa fa-info-circle text-muted"></i> <?=gettext("Use Public IP");?></td>
<td width="78%" class="vtable"> <td>
<input name="usepublicip" type="checkbox" id="usepublicip" value="<?=gettext("yes");?>" <?php if ($pconfig['usepublicip']) echo "checked=\"checked\""; ?> /> <input name="usepublicip" type="checkbox" id="usepublicip" value="<?=gettext("yes");?>" <?=!empty($pconfig['usepublicip']) ? "checked=\"checked\"" : ""; ?> />
<strong><?=gettext("If the interface IP is private, attempt to fetch and use the public IP instead.");?></strong> <strong><?=gettext("If the interface IP is private, attempt to fetch and use the public IP instead.");?></strong>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Description");?></td> <td><?=gettext("Description");?></td>
<td width="78%" class="vtable"> <td>
<input name="descr" type="text" class="formfld unknown" id="descr" size="60" value="<?=htmlspecialchars($pconfig['descr']);?>" /> <input name="descr" type="text" id="descr" value="<?=$pconfig['descr'];?>" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top">&nbsp;</td> <td>&nbsp;</td>
<td width="78%"> <td>
<input name="Submit" type="submit" class="btn btn-primary" value="<?=gettext("Save");?>" onclick="enable_change(true)" /> <input name="save" type="submit" class="btn btn-primary" value="<?=gettext("Save");?>" onclick="enable_change(true)" />
<a href="services_rfc2136.php"><input name="Cancel" type="button" class="btn btn-default" value="<?=gettext("Cancel");?>" /></a> <a href="services_rfc2136.php"><input name="Cancel" type="button" class="btn btn-default" value="<?=gettext("Cancel");?>" /></a>
<input name="Submit" type="submit" class="btn btn-default" value="<?=gettext("Save &amp; Force Update");?>" onclick="enable_change(true)" /> <input name="force" type="submit" class="btn btn-default" value="<?=gettext("Save &amp; Force Update");?>" onclick="enable_change(true)" />
<?php if (isset($id) && $a_rfc2136[$id]): ?> <?php if (isset($id)): ?>
<input name="id" type="hidden" value="<?=htmlspecialchars($id);?>" /> <input name="id" type="hidden" value="<?=$id;?>" />
<?php endif; ?> <?php endif; ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td width="22%" valign="top">&nbsp;</td> <td>&nbsp;</td>
<td width="78%"><span class="vexpl"><span class="red"><strong><?=gettext("Note:");?><br /> <td>
<span class="text-danger"><strong><?=gettext("Note:");?><br />
</strong></span><?php printf(gettext("You must configure a DNS server in %sSystem: " . </strong></span><?php printf(gettext("You must configure a DNS server in %sSystem: " .
"General setup %sor allow the DNS server list to be overridden " . "General setup %sor allow the DNS server list to be overridden " .
"by DHCP/PPP on WAN for dynamic DNS updates to work."),'<a href="system_general.php">', '</a>');?></span></td> "by DHCP/PPP on WAN for dynamic DNS updates to work."),'<a href="system_general.php">', '</a>');?>
</td>
</tr> </tr>
</table> </table>
</div> </div>
...@@ -248,5 +255,4 @@ include("head.inc"); ...@@ -248,5 +255,4 @@ include("head.inc");
</div> </div>
</div> </div>
</section> </section>
<?php include("foot.inc"); ?> <?php include("foot.inc"); ?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment