Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
     }
 }