public function PluginApiAppData(&$aAppData) { if (!empty(self::$sInviteEmail)) { $aAppData['ExternalInviteEmail'] = self::$sInviteEmail; } $oApiDomainsManager = \CApi::Manager('domains'); $oInput = new api_Http(); $oDomain = $oApiDomainsManager->GetDomainByUrl($oInput->GetHost()); if ($oDomain && !$oDomain->IsDefaultDomain) { $this->sTenantHash = substr(md5($oDomain->IdTenant . CApi::$sSalt), 0, 8); } \CExternalServicesConnectors::Init($aAppData, $this->sTenantHash); $oTenant = CExternalServicesConnectors::GetTenantFromCookieOrHash($this->sTenantHash); if ($oTenant) { $aSocials = $oTenant->getSocials(); $self = $this; // for PHP < 5.4 array_walk($aSocials, function ($oSocial, $sKey) use($self) { if ($oSocial->SocialAllow && in_array($sKey, $self->aEnableConnectors)) { $self->aConnectors[] = $oSocial->toArray(); } }); } if (!isset($aAppData['Plugins'])) { $aAppData['Plugins'] = array(); } $aExternalServices = array(); if (is_array($this->aConnectors)) { $aExternalServices['Connectors'] = $this->aConnectors; } $aAppData['Plugins']['ExternalServices'] = $aExternalServices; $oAccount = \api_Utils::GetDefaultAccount(); if ($oAccount) { $oApiSocial = \CApi::Manager('social'); $aSocials = $oApiSocial->getSocials($oAccount->IdAccount); $aUserServices = array(); foreach ($aSocials as $oSocial) { if ($oSocial && $oSocial instanceof \CSocial) { $aSocial = $oSocial->toArray(); $aSocial['ServiceName'] = ''; $aSocial['UserScopes'] = array(); if (in_array(strtolower($oSocial->TypeStr), $this->aEnableConnectors)) { $aUserServices[strtolower($oSocial->TypeStr)] = $aSocial; } } } $aResultUserServices = array(); foreach ($this->aConnectors as $aConnector) { $sServiceType = strtolower($aConnector['Name']); if (!$aUserServices[$sServiceType]) { $oSocial = new \CSocial(); $oSocial->TypeStr = $sServiceType; $aSocial = $oSocial->toArray(); $aUserServices[$sServiceType] = $aSocial; } $aUserServices[$sServiceType]['ServiceName'] = $aConnector['Name']; $aUserServices[$sServiceType]['UserScopes'] = array(); foreach ($aConnector['Scopes'] as $sScope) { if (trim($sScope) !== '') { $aUserServices[$sServiceType]['UserScopes'][$sScope] = in_array($sScope, $aUserServices[$sServiceType]['Scopes']); } } $aResultUserServices[$sServiceType] = $aUserServices[$sServiceType]; } $aAppData['Plugins']['ExternalServices']['Users'] = array_values($aResultUserServices); } $aAppData['AllowChangePassword'] = CApi::GetConf('plugins.external-services.allow-change-password', true); }