fromTable; } /** * @param $key * @param $value * @return array */ public function unsupported($key, $value) { if(strpos($key, 'cos_') === 0) { $name = str_replace('cos_', 'cosQuota_', $key); return [$name, $value]; } } /** * @return array */ public function getMapped() { return [ 'acc_limit' => 'acc_limit', 'acc_size' => 'acc_size', 'alias_limit' => 'alias_limit', 'cos_name' => 'cos_name', 'dist_list_limit' => 'dist_list_limit', 'domainMaxSize' => 'domainMaxSize', 'domain_alias_limit' => 'domain_alias_limit', 'filterAccountsByCOS' => 'filterAccountsByCOS', 'login_link' => 'login_link', 'useCos', //todo ? 'zimbraDumpsterEnabled' => 'zimbraDumpsterEnabled', 'zimbraDumpsterPurgeEnabled' => 'zimbraDumpsterPurgeEnabled', 'zimbraFeatureAdvancedSearchEnabled' => 'zimbraFeatureAdvancedSearchEnabled', 'zimbraFeatureBriefcasesEnabled' => 'zimbraFeatureBriefcasesEnabled', 'zimbraFeatureCalendarEnabled' => 'zimbraFeatureCalendarEnabled', 'zimbraFeatureCalendarReminderDeviceEmailEnabled' => 'zimbraFeatureCalendarReminderDeviceEmailEnabled', 'zimbraFeatureChangePasswordEnabled', 'zimbraFeatureContactsEnabled', 'zimbraFeatureConversationsEnabled', 'zimbraFeatureDistributionListFolderEnabled', 'zimbraFeatureEwsEnabled', 'zimbraFeatureExportFolderEnabled', 'zimbraFeatureFiltersEnabled', 'zimbraFeatureFlaggingEnabled', 'zimbraFeatureGalAutoCompleteEnabled', 'zimbraFeatureGalEnabled', 'zimbraFeatureGroupCalendarEnabled', 'zimbraFeatureHtmlComposeEnabled', 'zimbraFeatureIdentitiesEnabled', 'zimbraFeatureImapDataSourceEnabled', 'zimbraFeatureImportFolderEnabled', 'zimbraFeatureInitialSearchPreferenceEnabled', 'zimbraFeatureMailEnabled', 'zimbraFeatureMailPriorityEnabled', 'zimbraFeatureMailSendLaterEnabled', 'zimbraFeatureManageZimlets', 'zimbraFeatureMAPIConnectorEnabled', 'zimbraFeatureNewMailNotificationEnabled', 'zimbraFeatureOptionsEnabled', 'zimbraFeatureOutOfOfficeReplyEnabled', 'zimbraFeaturePeopleSearchEnabled', 'zimbraFeaturePop3DataSourceEnabled', 'zimbraFeatureReadReceiptsEnabled', 'zimbraFeatureSavedSearchesEnabled', 'zimbraFeatureSharingEnabled', 'zimbraFeatureSkinChangeEnabled', 'zimbraFeatureSMIMEEnabled', 'zimbraFeatureTaggingEnabled', 'zimbraFeatureTasksEnabled', 'zimbraFeatureTouchClientEnabled', 'zimbraFeatureWebClientOfflineAccessEnabled', 'zimbraImapEnabled', 'zimbraPop3Enabled', ]; } /** * @param $params * @return mixed */ public function updateValues($params, $prodId) { foreach($params as $key => $value) { if(strpos($key, 'cos_') === 0 && $key !== 'cos_name') { $name = str_replace('cos_', '', $key); $cos[$name] = $value; unset($params[$key]); } } if($cos) { $params['cos'] = json_encode($cos); } /** * update cosName * */ $defaultTypes = [ ClassOfServices::CUSTOM_ZIMBRA, ClassOfServices::ZIMBRA_CONFIG_OPTIONS, ClassOfServices::CLASS_OF_SERVICE_QUOTA, ]; /** * * */ if(!in_array($params['cos_name'], $defaultTypes)) { $manager = new ZimbraManager(); $repository = $manager->getApiByProduct($prodId)->soap->repository(); $cosList = $repository->cos->all(); /** * class of services from API */ foreach ($cosList as $cos) { /** * @var $cos \ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\ClassOfService */ $cosList[$cos->getName()] = $cos->getId(); } $params['cos_name'] = $cosList[$params['cos_name']]; } return $params; } /** * * return new fields as name => default value * * @return array */ public function getNewFields() { return [ 'clientAreaFeaturesLeft' => 'on', 'ca_emailAccountPage' => 'on', 'ca_distributionListPage' => 'on', 'ca_goToWebmailPage' => 'on', 'clientAreaFeaturesRight' => 'on', 'ca_emailAliasesPage' => 'on', 'ca_domainAliasesPage' => 'on', ]; } }