Przeglądaj źródła

SyncUsers store only emails from local email account to MacOsX storage (LDAP) email field

Piotr Labudda 10 lat temu
rodzic
commit
ffb933a20c
1 zmienionych plików z 15 dodań i 2 usunięć
  1. 15 2
      SE/se-lib/UserStorageMacOSX.php

+ 15 - 2
SE/se-lib/UserStorageMacOSX.php

@@ -211,8 +211,21 @@ class UserStorageMacOSX extends UserStorageBase {
 					$ldap = $this->_getAdminLdap();
 					if ($ldap) {
 						$attr = array();
-						$attr['mail'] = $val;
-						$ldap->mod_replace($userName, $attr);
+						$emailEx = (false !== strpos($val, ' '))? explode(' ', $val) : array($val);
+						$emailAliasList = array();
+						foreach ($emailEx as $emailAlias) {
+							$emailAlias = trim($emailAlias);
+							if (!empty($emailAlias) && filter_var($emailAlias, FILTER_VALIDATE_EMAIL)) {
+								$emailAliasList[] = $emailAlias;
+							}
+						}
+						if (!empty($emailAliasList)) {
+							$attr['mail'] = $emailAliasList;
+							$ldap->mod_replace($userName, $attr);
+						} else {
+							$attr['mail'] = '';
+							$ldap->mod_del($userName, $attr);
+						}
 					}
 					break;
 				case 'name':