فهرست منبع

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

Piotr Labudda 10 سال پیش
والد
کامیت
ffb933a20c
1فایلهای تغییر یافته به همراه15 افزوده شده و 2 حذف شده
  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':