Fix bug when updating aliases :
continuous-integration/drone/tag Build encountered an error Details

- array index for LDAP need to be in lowercase
- we need also array_filter() for mailacceptinggeneralid... especially to avoid null values
- array numeric indexes for LDAP attributes need to be consecutive, then we need order with array_values()
This commit is contained in:
Gregory Colpart 2019-09-10 23:11:23 +02:00
parent 114a5eea8e
commit 308619b694
1 changed files with 6 additions and 4 deletions

View File

@ -28,11 +28,13 @@ class LdapAlias extends LdapDomain {
}
public function update($active=false,$mailaccept=array(),$maildrop=array()) {
$info["isActive"] = ($active) ? 'TRUE' : 'FALSE';
$info["mailacceptinggeneralid"] = $mailaccept;
$info["maildrop"] = array_filter($maildrop, function($value) {
$info["isactive"] = ($active) ? 'TRUE' : 'FALSE';
$info["mailacceptinggeneralid"] = array_values(array_filter($mailaccept, function($value) {
return filter_var($value, FILTER_VALIDATE_EMAIL);
});
}));
$info["maildrop"] = array_values(array_filter($maildrop, function($value) {
return filter_var($value, FILTER_VALIDATE_EMAIL);
}));
if (!@ldap_mod_replace($this->conn, self::getBaseDN($this), $info)) {
$error = ldap_error($this->conn);