/**
  * Returns a user object with raw data from ldap
  *
  * @param Tinebase_Model_User $_user
  * @param array $_ldapEntry
  * @return Tinebase_Record_Abstract
  */
 protected function _ldap2User(Tinebase_Model_User $_user, array &$_ldapEntry)
 {
     $smtpUser = parent::_ldap2User($_user, $_ldapEntry);
     $emailAliases = array();
     $allowedDomains = explode(',', Tinebase_EmailUser::getConfig(Tinebase_Config::SMTP)['secondarydomains']);
     if (isset($_ldapEntry['mail'])) {
         foreach ($_ldapEntry['mail'] as $mail) {
             if (isset($_user['accountEmailAddress']) && $_user['accountEmailAddress'] != $mail) {
                 in_array(substr(strrchr($mail, "@"), 1), $allowedDomains) ? $emailAliases[] = $mail : ($this->_unmanagedMailAdresses[] = $mail);
             }
         }
     }
     $smtpUser['emailAliases'] = $emailAliases;
     $smtpUser['emailForwardOnly'] = null;
     $smtpUser['emailForwards'] = array();
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($smtpUser, true));
     }
     return $smtpUser;
 }
 /**
  * (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;
 }