/** * converts raw data from adapter into a single record / do mapping * * @param array $_data * @return Tinebase_Model_EmailUser */ protected function _rawDataToRecord(array $_rawdata) { $data = array(); foreach ($_rawdata as $key => $value) { $keyMapping = array_search($key, $this->_propertyMapping); if ($keyMapping !== FALSE) { switch ($keyMapping) { case 'emailPassword': // do nothing break; case 'emailMailQuota': case 'emailMailSize': case 'emailSieveQuota': case 'emailSieveSize': $data[$keyMapping] = convertToMegabytes($value); break; default: $data[$keyMapping] = $value; break; } } } return new Tinebase_Model_EmailUser($data, true); }
/** * Returns a user object with raw data from ldap * * @param array $_userData * @param string $_accountClass * @return Tinebase_Record_Abstract * * @todo add generic function for this in Tinebase_User_Ldap or Tinebase_Ldap? */ protected function _ldap2User(Tinebase_Model_User $_user, array &$_ldapEntry) { #if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . print_r($_ldapEntry, true)); if ($this->_backendType == Tinebase_Config::SMTP) { $accountArray = array('emailForwardOnly' => false, 'emailAliases' => array(), 'emailForwards' => array()); } else { $accountArray = array(); } foreach ($_ldapEntry as $key => $value) { if (is_int($key)) { continue; } $keyMapping = array_search($key, $this->_propertyMapping); if ($keyMapping !== FALSE) { switch ($keyMapping) { case 'emailMailQuota': // convert to megabytes $accountArray[$keyMapping] = convertToMegabytes($value[0]); break; case 'emailAliases': case 'emailForwards': $accountArray[$keyMapping] = $value; break; case 'emailForwardOnly': $accountArray[$keyMapping] = $value[0] == 'forwardonly' ? true : false; break; default: $accountArray[$keyMapping] = $value[0]; break; } } } if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($accountArray, true)); } if ($this->_backendType == Tinebase_Config::SMTP) { $_user->smtpUser = new Tinebase_Model_EmailUser($accountArray); $_user->emailUser = Tinebase_EmailUser::merge(isset($_user->emailUser) ? $_user->emailUser : null, $_user->smtpUser); } else { $_user->imapUser = new Tinebase_Model_EmailUser($accountArray); $_user->emailUser = Tinebase_EmailUser::merge(clone $_user->imapUser, isset($_user->emailUser) ? $_user->emailUser : null); } }