|
@@ -53,10 +53,10 @@ class UserStorageMacOSX extends UserStorageBase {
|
|
|
if (isset($usrLdap->$fldPassPolicy)) unset($usrLdap->$fldPassPolicy);
|
|
if (isset($usrLdap->$fldPassPolicy)) unset($usrLdap->$fldPassPolicy);
|
|
|
if (isset($usrLdap->authAuthority)) unset($usrLdap->authAuthority);
|
|
if (isset($usrLdap->authAuthority)) unset($usrLdap->authAuthority);
|
|
|
if (isset($usrLdap->altSecurityIdentities)) unset($usrLdap->altSecurityIdentities);
|
|
if (isset($usrLdap->altSecurityIdentities)) unset($usrLdap->altSecurityIdentities);
|
|
|
- if (!empty($usrLdap->mail) && is_array($usrLdap->mail)) {
|
|
|
|
|
|
|
+ if (!empty($usrLdap->mail)) {
|
|
|
$usrLdap->aliasesList = array();
|
|
$usrLdap->aliasesList = array();
|
|
|
{
|
|
{
|
|
|
- $aliasesEx = $usrLdap->mail;
|
|
|
|
|
|
|
+ $aliasesEx = (is_array($usrLdap->mail))? $usrLdap->mail : array($usrLdap->mail);
|
|
|
foreach ($aliasesEx as $emailAlias) {
|
|
foreach ($aliasesEx as $emailAlias) {
|
|
|
$emailAlias = trim($emailAlias);
|
|
$emailAlias = trim($emailAlias);
|
|
|
if (!empty($emailAlias) && filter_var($emailAlias, FILTER_VALIDATE_EMAIL)) {
|
|
if (!empty($emailAlias) && filter_var($emailAlias, FILTER_VALIDATE_EMAIL)) {
|
|
@@ -862,20 +862,20 @@ class UserStorageMacOSX extends UserStorageBase {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function _addMailAliases($usrLogin, $aliasList) {
|
|
public function _addMailAliases($usrLogin, $aliasList) {
|
|
|
- if (empty($usrLogin)) throw new Exception("Cannot add mail alias: Unknown user login!");
|
|
|
|
|
- if (empty($aliasList)) throw new Exception("Cannot add mail alias: Empty alias list!");
|
|
|
|
|
|
|
+ if (empty($usrLogin)) throw new Exception("Cannot add mail alias list: Unknown user login!");
|
|
|
|
|
+ if (empty($aliasList)) throw new Exception("Cannot add mail alias list: Empty alias list!");
|
|
|
|
|
|
|
|
$aliasListFlat = implode(' ', $aliasList);
|
|
$aliasListFlat = implode(' ', $aliasList);
|
|
|
$cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
|
|
$cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
|
|
|
$cmd = "{$cmdDsclAuth} -append /Users/{$usrLogin} EMailAddress {$aliasListFlat} ";
|
|
$cmd = "{$cmdDsclAuth} -append /Users/{$usrLogin} EMailAddress {$aliasListFlat} ";
|
|
|
$cmdOut = null; $cmdRet = null;
|
|
$cmdOut = null; $cmdRet = null;
|
|
|
exec($cmd, $cmdOut, $cmdRet);
|
|
exec($cmd, $cmdOut, $cmdRet);
|
|
|
- if ($cmdRet != 0) throw new Exception("Nie udało się dodać aliasów: {$aliasListFlat}");
|
|
|
|
|
|
|
+ if ($cmdRet != 0) throw new Exception("Nie udało się dodać aliasów: {$aliasListFlat}!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function _removeMailAliases($usrLogin, $aliasList) {
|
|
public function _removeMailAliases($usrLogin, $aliasList) {
|
|
|
- if (empty($usrLogin)) throw new Exception("Cannot remove mail alias: Unknown user login!");
|
|
|
|
|
- if (empty($aliasList)) throw new Exception("Cannot remove mail alias: Empty alias list!");
|
|
|
|
|
|
|
+ if (empty($usrLogin)) throw new Exception("Cannot remove mail alias list: Unknown user login!");
|
|
|
|
|
+ if (empty($aliasList)) throw new Exception("Cannot remove mail alias list: Empty alias list!");
|
|
|
|
|
|
|
|
$aliasListFlat = implode(' ', $aliasList);
|
|
$aliasListFlat = implode(' ', $aliasList);
|
|
|
$cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
|
|
$cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
|
|
@@ -885,5 +885,24 @@ class UserStorageMacOSX extends UserStorageBase {
|
|
|
if ($cmdRet != 0) throw new Exception("Nie udało się usunąć aliasów: {$aliasListFlat}");
|
|
if ($cmdRet != 0) throw new Exception("Nie udało się usunąć aliasów: {$aliasListFlat}");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function forceReplaceAliasList($usrLogin, $aliasList) {
|
|
|
|
|
+ if (empty($usrLogin)) throw new Exception("Cannot replace mail alias list: Unknown user login!");
|
|
|
|
|
+
|
|
|
|
|
+ $aliasListFlat = implode(' ', $aliasList);
|
|
|
|
|
+ $cmdDsclAuth = "dscl -u {$this->_rootUser} -P {$this->_rootPass} /LDAPv3/127.0.0.1 ";
|
|
|
|
|
+ $cmd = "{$cmdDsclAuth} -delete /Users/{$usrLogin} EMailAddress";
|
|
|
|
|
+ $cmdOut = null; $cmdRet = null;
|
|
|
|
|
+ exec($cmd, $cmdOut, $cmdRet);
|
|
|
|
|
+ if ($cmdRet != 0) throw new Exception("Nie udało się usunąć wszystkich aliasów");
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($aliasList)) {
|
|
|
|
|
+ sleep(1);
|
|
|
|
|
+ $cmd = "{$cmdDsclAuth} -append /Users/{$usrLogin} EMailAddress {$aliasListFlat}";
|
|
|
|
|
+ $cmdOut = null; $cmdRet = null;
|
|
|
|
|
+ exec($cmd, $cmdOut, $cmdRet);
|
|
|
|
|
+ if ($cmdRet != 0) throw new Exception("Nie udało się dodać aliasów: {$aliasListFlat}");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|