/** * @param CAccount $oAccount * * @return array */ private function appDataUserSettings($oAccount) { $aResult = array(); if ($oAccount) { $oSettings =& CApi::GetSettings(); $oApiCapabilityManager = CApi::Manager('capability'); /* @var $oApiCapabilityManager CApiCapabilityManager */ $aResult['IdUser'] = $oAccount->User->IdUser; $aResult['MailsPerPage'] = (int) $oAccount->User->MailsPerPage; $aResult['ContactsPerPage'] = (int) $oAccount->User->ContactsPerPage; $aResult['AutoCheckMailInterval'] = (int) $oAccount->User->AutoCheckMailInterval; $aResult['DefaultEditor'] = (int) $oAccount->User->DefaultEditor; $aResult['Layout'] = 0; $aResult['LoginsCount'] = $oAccount->User->LoginsCount; $aResult['CanLoginWithPassword'] = $oAccount->canLoginWithPassword(); if ($oAccount->User->LoginsCount === 1) { $oApiSocialManager = CApi::Manager('social'); $aSocials = $oApiSocialManager->getSocials($oAccount->IdAccount); if (count($aSocials) > 0) { $aResult['SocialName'] = $aSocials[0]->Name; } } $aResult['DefaultTheme'] = $oAccount->User->DefaultSkin; $aResult['DefaultLanguage'] = $oAccount->User->DefaultLanguage; $aResult['DefaultLanguageShort'] = api_Utils::ConvertLanguageNameToShort($oAccount->User->DefaultLanguage); $aResult['DefaultDateFormat'] = $oAccount->User->DefaultDateFormat; $aResult['DefaultTimeFormat'] = $oAccount->User->DefaultTimeFormat; $aResult['AllowCompose'] = (bool) $oAccount->AllowCompose; $aResult['AllowReply'] = (bool) $oAccount->AllowReply; $aResult['AllowForward'] = (bool) $oAccount->AllowForward; $aFetcherDomains = CApi::GetConf('labs.fetchers.domains', array()); $aResult['AllowFetcher'] = CApi::GetConf('labs.fetchers', false) && ($oAccount->Domain->IsInternal || \in_array($oAccount->IncomingMailServer, $aFetcherDomains)); $iSaveMail = $oSettings->GetConf('WebMail/SaveMail'); $iSaveMail = ESaveMail::Always !== $iSaveMail ? $oAccount->User->SaveMail : ESaveMail::Always; $aResult['SaveMail'] = (int) $iSaveMail; $aResult['ThreadsEnabled'] = !!$oAccount->Domain->UseThreads; $aResult['UseThreads'] = false; $aResult['SaveRepliedMessagesToCurrentFolder'] = false; $aResult['DesktopNotifications'] = (bool) $oAccount->User->DesktopNotifications; $aResult['AllowChangeInputDirection'] = (bool) $oAccount->User->AllowChangeInputDirection; $aResult['EnableOpenPgp'] = (bool) $oAccount->User->EnableOpenPgp; $aResult['AllowAutosaveInDrafts'] = (bool) $oAccount->User->AllowAutosaveInDrafts; $aResult['AutosignOutgoingEmails'] = (bool) $oAccount->User->AutosignOutgoingEmails; $aResult['EmailNotification'] = !empty($oAccount->User->EmailNotification) ? $oAccount->User->EmailNotification : $oAccount->Email; if ($aResult['ThreadsEnabled']) { $aResult['UseThreads'] = (bool) $oAccount->User->UseThreads; $aResult['SaveRepliedMessagesToCurrentFolder'] = (bool) $oAccount->User->SaveRepliedMessagesToCurrentFolder; } $aResult['OutlookSyncEnable'] = $oApiCapabilityManager->isOutlookSyncSupported($oAccount); $aResult['MobileSyncEnable'] = $oApiCapabilityManager->isMobileSyncSupported($oAccount); $aResult['ShowPersonalContacts'] = $oApiCapabilityManager->isPersonalContactsSupported($oAccount); $aResult['ShowGlobalContacts'] = $oApiCapabilityManager->isGlobalContactsSupported($oAccount, true); $aResult['IsCollaborationSupported'] = $oApiCapabilityManager->isCollaborationSupported(); $aResult['AllowFilesSharing'] = (bool) CApi::GetConf('labs.files-sharing', false); $aResult['IsFilesSupported'] = $oApiCapabilityManager->isFilesSupported($oAccount); $aResult['IsHelpdeskSupported'] = $oApiCapabilityManager->isHelpdeskSupported($oAccount); $aResult['IsHelpdeskAgent'] = $aResult['IsHelpdeskSupported']; // TODO $aResult['AllowHelpdeskNotifications'] = (bool) $oAccount->User->AllowHelpdeskNotifications; $aResult['HelpdeskSignature'] = (string) $oAccount->User->HelpdeskSignature; $aResult['HelpdeskSignatureEnable'] = (bool) $oAccount->User->HelpdeskSignatureEnable; $aResult['LastLogin'] = 0; if ($oSettings->GetConf('WebMail/EnableLastLoginNotification')) { $aResult['LastLogin'] = $oAccount->User->LastLogin; } $aResult['AllowVoice'] = false; $aResult['VoiceProvider'] = ''; $aResult['SipRealm'] = ''; $aResult['SipWebsocketProxyUrl'] = ''; $aResult['SipOutboundProxyUrl'] = ''; $aResult['SipCallerID'] = ''; $aResult['TwilioNumber'] = ''; $aResult['TwilioEnable'] = true; $aResult['SipEnable'] = true; $aResult['SipImpi'] = ''; $aResult['SipPassword'] = ''; $aResult['FilesEnable'] = $oAccount->User->FilesEnable; $oApiTenants = CApi::Manager('tenants'); /* @var $oApiTenants CApiTenantsManager */ if ($oApiTenants) { $oTenant = 0 < $oAccount->IdTenant ? $oApiTenants->getTenantById($oAccount->IdTenant) : $oApiTenants->getDefaultGlobalTenant(); if ($oTenant) { if ($oTenant->SipAllowConfiguration && $oTenant->SipAllow && $oTenant->isSipSupported() && $oApiCapabilityManager->isSipSupported($oAccount)) { $aResult['AllowVoice'] = $oTenant->SipAllow; if ($aResult['AllowVoice']) { $aResult['AllowVoice'] = $oAccount->User->SipEnable; } $aResult['VoiceProvider'] = 'sip'; $aResult['SipRealm'] = (string) $oTenant->SipRealm; $aResult['SipWebsocketProxyUrl'] = (string) $oTenant->SipWebsocketProxyUrl; $aResult['SipOutboundProxyUrl'] = (string) $oTenant->SipOutboundProxyUrl; $aResult['SipCallerID'] = (string) $oTenant->SipCallerID; $aResult['SipEnable'] = $oAccount->User->SipEnable; $aResult['SipImpi'] = $oAccount->User->SipImpi; $aResult['SipPassword'] = $oAccount->User->SipPassword; } else { if ($oTenant->TwilioAllowConfiguration && $oTenant->TwilioAllow && $oTenant->isTwilioSupported() && $oApiCapabilityManager->isTwilioSupported($oAccount)) { $aResult['AllowVoice'] = $oTenant->TwilioAllow; if ($aResult['AllowVoice']) { $aResult['AllowVoice'] = $oAccount->User->TwilioEnable; } $aResult['VoiceProvider'] = 'twilio'; $aResult['TwilioNumber'] = $oAccount->User->TwilioNumber; $aResult['TwilioEnable'] = $oAccount->User->TwilioEnable; } } } if ($aResult['VoiceProvider'] === 'sip' && (0 === strlen($aResult['SipRealm']) || 0 === strlen($aResult['SipWebsocketProxyUrl']))) { $aResult['AllowVoice'] = false; $aResult['SipRealm'] = ''; $aResult['SipWebsocketProxyUrl'] = ''; $aResult['SipOutboundProxyUrl'] = ''; $aResult['SipCallerID'] = ''; $aResult['SipEnable'] = false; $aResult['SipImpi'] = ''; $aResult['SipPassword'] = ''; } } /* @var $oApiUsersManager CApiUsersManager */ $oApiUsersManager = CApi::Manager('users'); /* @var $oApiDavManager CApiDavManager */ $oApiDavManager = CApi::Manager('dav'); $aResult['AllowCalendar'] = $oApiCapabilityManager->isCalendarSupported($oAccount); $aResult['Calendar'] = null; if ($aResult['AllowCalendar'] && $oApiDavManager && $oAccount->IsDefaultAccount) { /* @var $oCalUser CCalUser */ $oCalUser = $oApiUsersManager->getOrCreateCalUser($oAccount->IdUser); if ($oCalUser) { $aResult['Calendar'] = array(); $aResult['Calendar']['ShowWeekEnds'] = (bool) $oCalUser->ShowWeekEnds; $aResult['Calendar']['ShowWorkDay'] = (bool) $oCalUser->ShowWorkDay; $aResult['Calendar']['WorkDayStarts'] = (int) $oCalUser->WorkDayStarts; $aResult['Calendar']['WorkDayEnds'] = (int) $oCalUser->WorkDayEnds; $aResult['Calendar']['WeekStartsOn'] = (int) $oCalUser->WeekStartsOn; $aResult['Calendar']['DefaultTab'] = (int) $oCalUser->DefaultTab; $aResult['Calendar']['SyncLogin'] = (string) $oApiDavManager->getLogin($oAccount); $aResult['Calendar']['DavServerUrl'] = (string) $oApiDavManager->getServerUrl($oAccount); $aResult['Calendar']['DavPrincipalUrl'] = (string) $oApiDavManager->getPrincipalUrl($oAccount); $aResult['Calendar']['AllowReminders'] = true; } } $aResult['CalendarSharing'] = false; $aResult['CalendarAppointments'] = false; $aResult['AllowCalendar'] = null === $aResult['Calendar'] ? false : $aResult['AllowCalendar']; if ($aResult['AllowCalendar']) { $aResult['CalendarSharing'] = $oApiCapabilityManager->isCalendarSharingSupported($oAccount); $aResult['CalendarAppointments'] = $oApiCapabilityManager->isCalendarAppointmentsSupported($oAccount); } $bIsDemo = false; CApi::Plugin()->RunHook('plugin-is-demo-account', array(&$oAccount, &$bIsDemo)); $aResult['IsDemo'] = $bIsDemo; CApi::Plugin()->RunHook('api-app-user-data', array(&$oAccount, &$aResult)); } return $aResult; }
private function getMomentLanguageString($sLanguage) { $sMomentLanguage = api_Utils::ConvertLanguageNameToShort($sLanguage); if ($sLanguage === 'Arabic' || $sLanguage === 'Persian') { $sMoment = 'window.moment && window.moment.locale && window.moment.locale(\'en\');'; } else { $sMoment = 'window.moment && window.moment.locale && window.moment.locale(\'' . $sMomentLanguage . '\');'; } }