From bebb05a0b6a87fa68702e235494274013aa0c275 Mon Sep 17 00:00:00 2001 From: Dariusz Szut Date: Tue, 23 May 2017 14:31:13 +0200 Subject: [PATCH 1/2] EZEE-1521: Incorrect X-Siteaccess header set [frontend] --- Resources/public/js/views/services/ezs-browserviewservice.js | 3 +-- .../views/services/ezs-dynamiclandingpagecreatorviewservice.js | 2 +- .../js/views/services/ezs-dynamiclandingpageeditorviewservice.js | 2 +- .../public/js/views/services/ezs-landingpagecreatorservice.js | 4 +--- .../js/views/services/plugins/ezs-studionavigationhubplugin.js | 9 +++++---- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Resources/public/js/views/services/ezs-browserviewservice.js b/Resources/public/js/views/services/ezs-browserviewservice.js index 6101df4a..a504efbb 100644 --- a/Resources/public/js/views/services/ezs-browserviewservice.js +++ b/Resources/public/js/views/services/ezs-browserviewservice.js @@ -261,8 +261,7 @@ YUI.add('ezs-browserviewservice', function (Y) { */ _createPageUrl: function (locationPath) { var app = this.get('app'), - siteaccesses = Object.keys(app.get('config.studioSiteaccesses')), - activeSiteaccess = app.get('studioActiveSiteaccess') || siteaccesses[0], + activeSiteaccess = app.get('studioActiveSiteaccess') || app.get('config.currentSiteAccess'), siteaccessRootUrl = app.get('config.studioSiteaccesses')[activeSiteaccess].urlRoot; if (siteaccessRootUrl[siteaccessRootUrl.length - 1] === SLASH) { diff --git a/Resources/public/js/views/services/ezs-dynamiclandingpagecreatorviewservice.js b/Resources/public/js/views/services/ezs-dynamiclandingpagecreatorviewservice.js index 452e1c80..0c8a3409 100644 --- a/Resources/public/js/views/services/ezs-dynamiclandingpagecreatorviewservice.js +++ b/Resources/public/js/views/services/ezs-dynamiclandingpagecreatorviewservice.js @@ -60,7 +60,7 @@ YUI.add('ezs-dynamiclandingpagecreatorviewservice', function (Y) { this._showLoadingScreen(); if (!activeSiteaccessConfig) { - activeSiteaccessConfig = siteaccesses[Object.keys(siteaccesses)[0]]; + activeSiteaccessConfig = siteaccesses[app.get('config.currentSiteAccess')]; } mainLanguageCode = activeSiteaccessConfig.languages[0]; diff --git a/Resources/public/js/views/services/ezs-dynamiclandingpageeditorviewservice.js b/Resources/public/js/views/services/ezs-dynamiclandingpageeditorviewservice.js index fdebc09d..08a4f557 100644 --- a/Resources/public/js/views/services/ezs-dynamiclandingpageeditorviewservice.js +++ b/Resources/public/js/views/services/ezs-dynamiclandingpageeditorviewservice.js @@ -337,7 +337,7 @@ YUI.add('ezs-dynamiclandingpageeditorviewservice', function (Y) { this._showLoadingScreen(); if (!activeSiteaccessConfig) { - activeSiteaccessConfig = siteaccesses[Object.keys(siteaccesses)[0]]; + activeSiteaccessConfig = siteaccesses[app.get('config.currentSiteAccess')]; } this.set('languageCode', activeSiteaccessConfig.languages[0]); diff --git a/Resources/public/js/views/services/ezs-landingpagecreatorservice.js b/Resources/public/js/views/services/ezs-landingpagecreatorservice.js index e5744a39..bf2f463f 100644 --- a/Resources/public/js/views/services/ezs-landingpagecreatorservice.js +++ b/Resources/public/js/views/services/ezs-landingpagecreatorservice.js @@ -304,14 +304,12 @@ YUI.add('ezs-landingpagecreatorservice', function (Y) { _redirectToInsite: function () { var app = this.get('app'), locationPath = this.get('parentLocationPath'), - siteaccesses, defaultSiteaccessIndex; this._showLoadingScreen(); if (!locationPath) { - siteaccesses = app.get('config.studioSiteaccesses'); - defaultSiteaccessIndex = Object.keys(siteaccesses)[0]; + defaultSiteaccessIndex = app.get('config.currentSiteAccess'); locationPath = defaultSiteaccessIndex + '/'; app.set('studioActiveSiteaccess', defaultSiteaccessIndex); diff --git a/Resources/public/js/views/services/plugins/ezs-studionavigationhubplugin.js b/Resources/public/js/views/services/plugins/ezs-studionavigationhubplugin.js index 2a567f17..4be500fb 100644 --- a/Resources/public/js/views/services/plugins/ezs-studionavigationhubplugin.js +++ b/Resources/public/js/views/services/plugins/ezs-studionavigationhubplugin.js @@ -159,7 +159,7 @@ YUI.add('ezs-studionavigationhubplugin', function (Y) { app = host.get('app'), locationHash = window.location.hash, siteaccesses = Object.keys(app.get('config.studioSiteaccesses')), - defaultSiteaccess = siteaccesses[0], + defaultSiteaccess = app.get('config.currentSiteAccess'), activeSiteaccess = app.get('studioActiveSiteaccess') || defaultSiteaccess, siteaccessRootUrl, siteaccessesFound = siteaccesses.filter(Y.bind(function (access) { @@ -428,7 +428,7 @@ YUI.add('ezs-studionavigationhubplugin', function (Y) { locationAlias = refList.UrlAlias[0]._href.split('/'), locationRemoteId = locationAlias[locationAlias.length - 1]; - activeSiteaccess = activeSiteaccess || Object.keys(app.get('config.studioSiteaccesses'))[0]; + activeSiteaccess = activeSiteaccess || app.get('config.currentSiteAccess'); if (activeSiteaccess !== app.get('studioActiveSiteaccess')) { app.set('studioActiveSiteaccess', activeSiteaccess); @@ -462,8 +462,9 @@ YUI.add('ezs-studionavigationhubplugin', function (Y) { var contentItem, selectedLocationId = this.get('selectedLocationId'), previewLanguageCode = this.get('previewLanguageCode'), - siteAccessesConfig = this.get('host').get('app').get('config.studioSiteaccesses'), - defaultSiteAccess = Object.keys(siteAccessesConfig)[0], + app = this.get('host').get('app'), + siteAccessesConfig = app.get('config.studioSiteaccesses'), + defaultSiteAccess = app.get('config.currentSiteAccess'), defaultLanguageCode = siteAccessesConfig[defaultSiteAccess].languages[0], languageCode = previewLanguageCode ? previewLanguageCode : defaultLanguageCode; From c5157237d391d1dad20a159c367e001de99fd3a5 Mon Sep 17 00:00:00 2001 From: Dariusz Szut Date: Tue, 23 May 2017 14:31:13 +0200 Subject: [PATCH 2/2] EZEE-1521: Incorrect X-Siteaccess header set [backend] --- ApplicationConfig/Providers/CurrentSiteAccess.php | 30 +++++++++++++++++++++++ ApplicationConfig/Providers/MultiDomain.php | 7 ++++-- ApplicationConfig/Providers/SiteAccesses.php | 13 ++++++---- Resources/config/services.yml | 10 ++++++++ 4 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 ApplicationConfig/Providers/CurrentSiteAccess.php diff --git a/ApplicationConfig/Providers/CurrentSiteAccess.php b/ApplicationConfig/Providers/CurrentSiteAccess.php new file mode 100644 index 00000000..39266d7f --- /dev/null +++ b/ApplicationConfig/Providers/CurrentSiteAccess.php @@ -0,0 +1,30 @@ +siteAccess = $siteAccess; + } + + /** + * @return string + */ + public function getConfig() + { + return $this->siteAccess->name; + } +} diff --git a/ApplicationConfig/Providers/MultiDomain.php b/ApplicationConfig/Providers/MultiDomain.php index f7ac3f5a..83cc3918 100644 --- a/ApplicationConfig/Providers/MultiDomain.php +++ b/ApplicationConfig/Providers/MultiDomain.php @@ -9,17 +9,20 @@ class MultiDomain { - /** @var ReverseMatcher */ + /** @var \EzSystems\StudioUIBundle\SiteAccess\ReverseMatcher */ private $reverseMatcher; /** - * @param ReverseMatcher $reverseMatcher + * @param \EzSystems\StudioUIBundle\SiteAccess\ReverseMatcher $reverseMatcher */ public function __construct(ReverseMatcher $reverseMatcher) { $this->reverseMatcher = $reverseMatcher; } + /** + * @return bool + */ public function getConfig() { return $this->reverseMatcher->isMultiDomain(); diff --git a/ApplicationConfig/Providers/SiteAccesses.php b/ApplicationConfig/Providers/SiteAccesses.php index 073d5408..594b1440 100644 --- a/ApplicationConfig/Providers/SiteAccesses.php +++ b/ApplicationConfig/Providers/SiteAccesses.php @@ -10,19 +10,19 @@ class SiteAccesses { - /** @var ConfigResolverInterface */ + /** @var \eZ\Publish\Core\MVC\ConfigResolverInterface */ private $configResolver; - /** @var ReverseMatcher */ + /** @var \EzSystems\StudioUIBundle\SiteAccess\ReverseMatcher */ private $reverseMatcher; /** @var array */ private $siteAccessList; /** - * @param ConfigResolverInterface $configResolver + * @param \eZ\Publish\Core\MVC\ConfigResolverInterface $configResolver * @param array $siteAccessList - * @param ReverseMatcher $reverseMatcher + * @param \EzSystems\StudioUIBundle\SiteAccess\ReverseMatcher $reverseMatcher */ public function __construct(ConfigResolverInterface $configResolver, array $siteAccessList, ReverseMatcher $reverseMatcher) { @@ -31,9 +31,12 @@ public function __construct(ConfigResolverInterface $configResolver, array $site $this->reverseMatcher = $reverseMatcher; } + /** + * @return array + */ public function getConfig() { - $siteAccesses = array(); + $siteAccesses = []; foreach ($this->siteAccessList as $siteAccess) { if ($this->configResolver->hasParameter('languages', null, $siteAccess)) { diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 12f9d4a1..0a7a970f 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,6 +1,7 @@ parameters: ezstudioui.controller.studio.class: EzSystems\StudioUIBundle\Controller\StudioUIController ezstudioui.provider.site_accesses.class: EzSystems\StudioUIBundle\ApplicationConfig\Providers\SiteAccesses + ezstudioui.provider.current_site_access.class: EzSystems\StudioUIBundle\ApplicationConfig\Providers\CurrentSiteAccess ezstudioui.provider.multidomain.class: EzSystems\StudioUIBundle\ApplicationConfig\Providers\MultiDomain ezstudioui.twig_extension.class: EzSystems\StudioUIBundle\Twig\StudioUIExtension ezstudioui.reverse_matcher.class: EzSystems\StudioUIBundle\SiteAccess\ReverseMatcher @@ -33,6 +34,15 @@ services: name: ezsystems.platformui.application_config_provider key: 'studioSiteaccesses' + ezstudioui.provider.current_site_access: + class: %ezstudioui.provider.current_site_access.class% + arguments: + - '@ezpublish.siteaccess' + tags: + - + name: ezsystems.platformui.application_config_provider + key: 'currentSiteAccess' + ezstudioui.provider.multidomain: class: %ezstudioui.provider.multidomain.class% arguments: