/**
  * (non-PHPdoc)
  * @see Tinebase_EmailUser_Ldap::_user2Ldap()
  */
 protected function _user2Ldap(Tinebase_Model_FullUser $_user, array &$_ldapData, array &$_ldapEntry = array())
 {
     if (empty($_user->accountEmailAddress)) {
         foreach ($this->_propertyMapping as $ldapKeyName) {
             $_ldapData[$ldapKeyName] = array();
         }
         $_ldapData['objectclass'] = array_unique(array_diff($_ldapData['objectclass'], $this->_requiredObjectClass));
     } else {
         parent::_user2Ldap($_user, $_ldapData, $_ldapEntry);
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . '  $ldapData: ' . print_r($_ldapData, true));
     }
 }
 /**
  * populate mail attribute(s)
  * 
  * (non-PHPdoc)
  * @see Tinebase_EmailUser_Ldap::_user2Ldap()
  */
 protected function _user2Ldap(Tinebase_Model_FullUser $_user, array &$_ldapData, array &$_ldapEntry = array())
 {
     if (!empty($_user->smtpUser) && $_user->smtpUser->emailAliases && !empty($_user->smtpUser->emailAliases)) {
         $mail = $_user->smtpUser->emailAliases;
         array_unshift($mail, $_user->accountEmailAddress);
     } else {
         $mail = $_user->accountEmailAddress;
     }
     $mail = array_merge($mail, $this->_unmanagedMailAdresses);
     $_ldapData['mail'] = $mail;
     parent::_user2Ldap($_user, $_ldapData, $_ldapEntry);
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . '  $ldapData: ' . print_r($_ldapData, true));
     }
 }
 /**
  * (non-PHPdoc)
  * @see Tinebase_EmailUser_Ldap::_ldap2User()
  */
 protected function _ldap2User(Tinebase_Model_User $_user, array &$_ldapEntry)
 {
     $originalUser = parent::_ldap2User($_user, $_ldapEntry);
     if ($this->_ldapRawData === null) {
         if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
             Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' read ldap simpleMail schema');
         }
         // replace wildcards in config
         array_walk_recursive($this->_simpleMailConfig, function (&$value, $property, $userdata) {
             if (strpos($value, '%s') !== false) {
                 $value = str_replace('%s', $userdata['dn'], $value);
             } elseif (strpos($value, '%u') !== false) {
                 $value = str_replace('%u', $userdata['user'], $value);
             }
         }, array('dn' => $_ldapEntry['dn'], 'user' => $_user['accountLoginName']));
         $this->_getSpecialResultDataFromLdap();
     }
     foreach ($this->_propertyMapping as $property => $ldapName) {
         $originalUser[$property] = $this->_getPropertiesFromLdapRawData($ldapName);
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' simpleMail - Tinebase_EmailUser combined with ldap: ' . print_r($originalUser, true));
     }
     return $originalUser;
 }