You've already forked postfixadmin
mirror of
https://github.com/postfixadmin/postfixadmin.git
synced 2025-11-24 23:21:06 +03:00
create-alias: support multiple alias targets
- support multiple alias targets, patch by anexius@SF, http://sourceforge.net/projects/postfixadmin/forums/forum/676076/topic/4004442 The patch fixes https://sourceforge.net/tracker/?func=detail&aid=2706290&group_id=191583&atid=937964 additional small fixes: - replace spaces only at the start and end of a line, not in the middle of an (BTW: invalid) mail address - allow multiple error messages (separated by <br />) - prevent input data loss on validation errors git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@900 a1433add-5e2c-0410-b055-b7f2511e0802
This commit is contained in:
@@ -75,9 +75,10 @@ if ($_SERVER['REQUEST_METHOD'] == "POST")
|
|||||||
$fDomain = escape_string ($_POST['fDomain']);
|
$fDomain = escape_string ($_POST['fDomain']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!preg_match ('/@/',$fGoto)) {
|
# TODO: Doesn't work with multiple aliases - fix or discard...
|
||||||
$fGoto = $fGoto . "@" . escape_string ($_POST['fDomain']);
|
# if(!preg_match ('/@/',$fGoto)) {
|
||||||
}
|
# $fGoto = $fGoto . "@" . escape_string ($_POST['fDomain']);
|
||||||
|
# }
|
||||||
|
|
||||||
if(!(authentication_has_role('global-admin') ||
|
if(!(authentication_has_role('global-admin') ||
|
||||||
check_owner ($SESSID_USERNAME, $fDomain) ))
|
check_owner ($SESSID_USERNAME, $fDomain) ))
|
||||||
@@ -105,7 +106,42 @@ if ($_SERVER['REQUEST_METHOD'] == "POST")
|
|||||||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1'];
|
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($fGoto) || !check_email ($fGoto)) {
|
// Begin check alias email
|
||||||
|
$goto = preg_replace ('/\\\r\\\n/', ',', $fGoto);
|
||||||
|
$goto = preg_replace ('/\r\n/', ',', $goto);
|
||||||
|
$goto = preg_replace ('/,[\s]+/i', ',', $goto);
|
||||||
|
$goto = preg_replace ('/[\s]+,/i', ',', $goto);
|
||||||
|
$goto = preg_replace ('/,*$|^,*/', '', $goto);
|
||||||
|
$goto = preg_replace ('/,,*/', ',', $goto);
|
||||||
|
|
||||||
|
if (empty ($goto) && !authentication_has_role('global-admin')) {
|
||||||
|
$error = 1;
|
||||||
|
$tGoto = $_POST['fGoto'];
|
||||||
|
$tMessage = $PALANG['pEdit_alias_goto_text_error1'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$new_aliases = array();
|
||||||
|
if ($error != 1) {
|
||||||
|
$new_aliases = explode(',', $goto);
|
||||||
|
}
|
||||||
|
$new_aliases = array_unique($new_aliases);
|
||||||
|
|
||||||
|
foreach($new_aliases as $address) {
|
||||||
|
if (in_array($address, $CONF['default_aliases'])) continue;
|
||||||
|
if (empty($address)) continue; # TODO: should never happen - remove after 2.2 release
|
||||||
|
if (!check_email($address)) {
|
||||||
|
$error = 1;
|
||||||
|
$tGoto = $goto;
|
||||||
|
if (!empty($tMessage)) $tMessage .= "<br />";
|
||||||
|
$tMessage .= $PALANG['pEdit_alias_goto_text_error2'] . "$address</span>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$goto = implode(',', $new_aliases);
|
||||||
|
$fGoto = escape_string($goto);
|
||||||
|
// End check alias mail
|
||||||
|
|
||||||
|
if (empty($fGoto)) {
|
||||||
$error = 1;
|
$error = 1;
|
||||||
$tAddress = escape_string ($_POST['fAddress']);
|
$tAddress = escape_string ($_POST['fAddress']);
|
||||||
$tGoto = $fGoto;
|
$tGoto = $fGoto;
|
||||||
@@ -150,7 +186,11 @@ if ($_SERVER['REQUEST_METHOD'] == "POST")
|
|||||||
$tDomain = $fDomain;
|
$tDomain = $fDomain;
|
||||||
$tMessage = $PALANG['pCreate_alias_result_success'] . "<br />($fAddress -> $fGoto)<br />\n";
|
$tMessage = $PALANG['pCreate_alias_result_success'] . "<br />($fAddress -> $fGoto)<br />\n";
|
||||||
}
|
}
|
||||||
}
|
} else { # on error
|
||||||
|
$tAddress = htmlentities($_POST['fAddress']);
|
||||||
|
$tGoto = htmlentities($_POST['fGoto']);
|
||||||
|
$tDomain = htmlentities($_POST['fDomain']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$smarty->assign ('tAddress', $tAddress);
|
$smarty->assign ('tAddress', $tAddress);
|
||||||
|
|||||||
@@ -15,8 +15,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{$PALANG.pCreate_alias_goto}:</td>
|
<td>{$PALANG.pCreate_alias_goto}:</td>
|
||||||
<td><input class="flat" type="text" name="fGoto" value="{$tGoto}" /></td>
|
<td colspan="2"><textarea class="flat" rows="10" cols="60" name="fGoto">{$tGoto}</textarea></td>
|
||||||
<td>{$pCreate_alias_goto_text}</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{$PALANG.pCreate_alias_active}:</td>
|
<td>{$PALANG.pCreate_alias_active}:</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user