phpldapadmin/templates/creation/new_sendmail_relay_template.php
2009-06-30 19:22:30 +10:00

214 lines
7.4 KiB
PHP

<?php
// customize this to your needs
$default_container = "";
// Common to all templates
$container = isset( $_POST['container'] ) ? $_POST['container'] : null;
$server_id = isset( $_POST['server_id'] ) ? $_POST['server_id'] : false;
// Modify this array and add/remove the corresponding attributes below
$object_classes = array( 'top', 'sendmailMTAMapObject' );
// Get default cluster from container
$dn_array = ldap_explode_dn($container, 0);
$cluster_name = "";
$host_name = "";
foreach ($dn_array as $attr) {
if (preg_match('/(.+)=(.+)/', $attr, $match)) {
$attr = $match[1];
$value = $match[2];
if (preg_match('/Cluster/i', $attr)) {
$cluster_name = $value;
}
if (preg_match('/Host/i', $attr)) {
$host_name = $value;
}
}
}
// A list of default attributes/values to create with this new user
$default_attributes = array(
'sendmailMTAMapName' => 'access',
);
// Unique to this template
$step = 1;
if( isset($_POST['step']) )
$step = $_POST['step'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
?>
<?php if ($step == 1) { ?>
<script>
function enableErrorEntry() {
oError = document.getElementById('custom_error');
oError.disabled = false;
}
function disableErrorEntry() {
oError = document.getElementById('custom_error');
oError.disabled = true;
}
function setErrorEntry(oSelect) {
sValue = oSelect.options[oSelect.selectedIndex].value;
if (sValue == "ERROR") {
enableErrorEntry();
} else {
disableErrorEntry();
}
}
</script>
<center>
<h2 style="margin:0px">New Sendmail Relay</h2>
<br />
</center>
<form action="creation_template.php" method="post" name="sendmail_relay_form">
<input type="hidden" name="step" value="<?php echo $step + 1; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center>
<table class="confirm">
<tr class="spacer"><td colspan="3"></td></tr>
<tr>
<td><img src="images/object.png" /></td>
<td class="heading">Sendmail cluster name:</td>
<td><input type="text" name="sendmailMTACluster" id="sendmailMTACluster" value="<?php echo $cluster_name; ?>" /></td>
</tr>
<tr>
<td></td>
<td class="heading">Sendmail host name:</td>
<td><input type="text" name="sendmailMTAHost" id="sendmailMTAHost" value="<?php echo $host_name; ?>" /><small><i>Leave blank</i></small></td>
</tr>
<tr class="spacer"><td colspan="3"></td></tr>
<tr>
<td><img src="images/server.png" /></td>
<td class="heading">Host/Network/Address:</td>
<td><input type="text" name="sendmailMTAKey" id="sendmailMTAKey" value="" /></td>
</tr>
<tr>
<td></td>
<td class="heading">Relay control:</td>
<td>
<select name="sendmailMTAMapValue" id="sendmailMTAMapValue" onchange="setErrorEntry(this);">
<option value=""></option>
<option value="RELAY">RELAY: Allow host/network/address to relay</option>
<option value="OK">OK: Accept local mail but disallow relay</option>
<option value="REJECT">REJECT: Reject messages</option>
<option value="DISCARD">DISCARD: Discard messages</option>
<option value="SKIP">SKIP: Apply default action to messages</option>
<option value="ERROR">ERROR: Reject message with custom error</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td class="heading">Custom error</td>
<td><input type="text" name="custom_error" id="custom_error" value="" /></td>
</tr>
<tr class="spacer"><td colspan="3"></td></tr>
<tr>
<td></td>
<td class="heading"><?php echo $lang['container']; ?></td>
<td><input type="text" name="container" size="40" value="<?php echo htmlspecialchars( $container ); ?>" />
<?php draw_chooser_link( 'sendmail_relay_form.container' ); ?>
</td>
</tr>
<tr>
<td colspan="3"><center><br /><input type="submit" value="Proceed" /></center></td>
</tr>
</table>
</center>
</form>
<script>
// Set custom error as enabled or disabled
oSelect = document.getElementById("sendmailMTAMapValue");
setErrorEntry(oSelect);
</script>
<?php } elseif( $step == 2 ) {
/* Critical assertions */
if( ! trim( $_REQUEST['sendmailMTACluster'] ) && ! trim($_REQUEST['sendmailMTAHost'])) {
pla_error("Either Cluster name or Host name need to be specified");
}
if (!trim($_REQUEST['sendmailMTAKey']) ) {
pla_error("The Host/Network/Address is blank and must be specified");
}
if (!trim($_REQUEST['sendmailMTAMapValue']) ) {
pla_error("The relay control is blank and must be specified");
}
if (!trim($_REQUEST['sendmailMTAMapValue']) == "ERROR" || ! trim($_REQUEST['custom_error'])) {
pla_error("When specifying ERROR you must enter a custom error message");
}
?>
<center><h3>Confirm sendmail domain creation:</h3></center>
<form action="create.php" method="post">
<input type="hidden" name="step" value="<?php echo $step + 1; ?>"\>
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="new_dn" value="<?php echo htmlspecialchars( 'sendmailMTAKey=' . $_REQUEST['sendmailMTAKey'] ) . "," . $_REQUEST['container']; ?>" />
<!-- ObjectClasses -->
<?php $object_classes = rawurlencode( serialize( $object_classes ) ); ?>
<input type="hidden" name="object_classes" value="<?php echo $object_classes; ?>" />
<!-- The array of attributes/values -->
<input type="hidden" name="attrs[]" value="sendmailMTACluster" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($_REQUEST['sendmailMTACluster']);?>" />
<input type="hidden" name="attrs[]" value="sendmailMTAHost" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($_REQUEST['sendmailMTAHost']);?>" />
<input type="hidden" name="attrs[]" value="sendmailMTAKey" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($_REQUEST['sendmailMTAKey']);?>" />
<input type="hidden" name="attrs[]" value="sendmailMTAMapValue" />
<?php
if ($_REQUEST['sendmailMTAMapValue'] == 'ERROR') {
// we need to create map value using custom_error
$map_value = "ERROR:" . $_REQUEST['custom_error'];
} else {
$map_value = $_REQUEST['sendmailMTAMapValue'];
}
?>
<input type="hidden" name="vals[]" value="<?php echo $map_value; ?>" />
<?php foreach( $default_attributes as $default_attr => $default_val ) { ?>
<!-- default attribute, auto-added based on $default_attributes array specified in new_user_template.php -->
<input type="hidden" name="attrs[]" value="<?php echo htmlspecialchars($default_attr); ?>" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($default_val);?>" />
<?php } ?>
<center>
<table class="confirm">
<tr class="even"><td class="heading">Sendmail cluster name:</td><td><b><?php echo htmlspecialchars( $_REQUEST['sendmailMTACluster'] ); ?></b></td></tr>
<tr class="odd"><td class="heading">Sendmail host name:</td><td><b><?php echo htmlspecialchars( $_REQUEST['sendmailMTAHost'] ); ?></b></td></tr>
<tr class="even"><td class="heading">Host/Network/Address:</td><td><b><?php echo htmlspecialchars( $_REQUEST['sendmailMTAKey'] ); ?></b></td></tr>
<tr class="even"><td class="heading">Relay Control:</td><td><b><?php echo htmlspecialchars( $_REQUEST['sendmailMTAMapValue'] ); ?></b></td></tr>
<tr class="even"><td class="heading">Custom error:</td><td><b><?php echo htmlspecialchars( $_REQUEST['custom_error'] ); ?></b></td></tr>
</table>
<br /><input type="submit" value="Create Relay" />
</center>
<?php } ?>