From eff5cd1c74a6d51bdcc6d8398714c1702443d042 Mon Sep 17 00:00:00 2001 From: Patrick Barroca <pbarroca@afi-sa.fr> Date: Fri, 12 Jul 2019 16:08:05 +0200 Subject: [PATCH] hotline #94842 : update philarmoniedeparis.fr SSO --- VERSIONS_HOTLINE/94842 | 1 + library/Class/AdminVar/CiteDeLaMusique.php | 17 ++++++++++++++++- .../Systeme/ModulesMenu/CiteDeLaMusique.php | 3 +-- .../View/Helper/Album/CiteDeLaMusique.php | 13 ++++--------- .../CiteDeLaMusique/CiteDeLaMusiqueTest.php | 4 ++-- 5 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 VERSIONS_HOTLINE/94842 diff --git a/VERSIONS_HOTLINE/94842 b/VERSIONS_HOTLINE/94842 new file mode 100644 index 00000000000..c6d6307a002 --- /dev/null +++ b/VERSIONS_HOTLINE/94842 @@ -0,0 +1 @@ + - ticket #94842 : Connecteur Cité de la musique : Maintenance SSO \ No newline at end of file diff --git a/library/Class/AdminVar/CiteDeLaMusique.php b/library/Class/AdminVar/CiteDeLaMusique.php index e4366408048..fb0678ff578 100644 --- a/library/Class/AdminVar/CiteDeLaMusique.php +++ b/library/Class/AdminVar/CiteDeLaMusique.php @@ -21,6 +21,8 @@ class Class_AdminVar_CiteDeLaMusique { + const SSO_BASE_URL = 'https://admin-pad.philharmoniedeparis.fr/logon/'; + /** * @return bool */ @@ -40,5 +42,18 @@ class Class_AdminVar_CiteDeLaMusique { public function getSets() { return array_filter(explode(';', Class_AdminVar::get('CITEDELAMUSIQUE_SETS'))); } + + + public function getSsoUrl() { + return $this->isEnabled() + ? (static::SSO_BASE_URL . $this->getLibraryId()) + : ''; + } + + + public function getAlbumSsoUrl($album) { + return $this->isEnabled() + ? ($this->getSsoUrl() . '?' . http_build_query(['backUrl' => $album->getExternalUri()])) + : ''; + } } -?> \ No newline at end of file diff --git a/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php b/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php index 03f10258298..648573d5585 100644 --- a/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php +++ b/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php @@ -20,7 +20,6 @@ */ class Class_Systeme_ModulesMenu_CiteDeLaMusique extends Class_Systeme_ModulesMenu_SSOAbstract { - protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES, $_type_module = 'CITE_DE_LA_MUSIQUE', @@ -46,7 +45,7 @@ class Class_Systeme_ModulesMenu_CiteDeLaMusique extends Class_Systeme_ModulesMen if (!$user->hasRightAccessCiteDeLaMusique()) return ''; - return 'https://media.citedelamusique.fr/medias/logon/' . $cite_musique->getLibraryId(); + return $cite_musique->getSsoUrl(); } diff --git a/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php b/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php index 27849b79e77..8f606468756 100644 --- a/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php +++ b/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php @@ -27,16 +27,12 @@ class ZendAfi_View_Helper_Album_CiteDeLaMusique extends ZendAfi_View_Helper_TagR return ''; if (!$this->canAccessRessourceNumerique()) - return $this->view->tag('p', - $this->view->_('Vous devez être connecté sous un compte avec abonnement valide pour pouvoir accéder à la ressource numérique')); + return $this->_tag('p', + $this->_('Vous devez être connecté sous un compte avec abonnement valide pour pouvoir accéder à la ressource numérique')); - $url = 'http://media.citedelamusique.fr/extranet/autologon/autologon.ashx?' - . http_build_query(['bib' => $cite_musique->getLibraryId(), - 'backUrl' => $album->getExternalUri()]); - - return $this->view->tagAnchor($url, - $this->view->_('Accéder à la ressource numérique')); + return $this->view->tagAnchor($cite_musique->getAlbumSsoUrl($album), + $this->_('Accéder à la ressource numérique')); } @@ -44,4 +40,3 @@ class ZendAfi_View_Helper_Album_CiteDeLaMusique extends ZendAfi_View_Helper_TagR return $user->hasRightAccessCiteDeLaMusique(); } } -?> \ No newline at end of file diff --git a/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php b/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php index 98eee79db71..8b1ef762286 100644 --- a/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php +++ b/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php @@ -145,7 +145,7 @@ class CiteDeLaMusiqueModulesControllerTest extends AbstractControllerTestCase { public function citeDeLaMusiqueActionShouldRedirectToCiteDeLaMusiqueLogon() { $this->dispatch('/modules/cite-de-la-musique', true); $this->assertXPathContentContains('//script', - 'document.location.href="https://media.citedelamusique.fr/medias/logon/34-mylib"'); + 'document.location.href="https://admin-pad.philharmoniedeparis.fr/logon/34-mylib"'); } @@ -197,7 +197,7 @@ class CiteDeLaMusiqueRenderAlbumTest extends ViewHelperTestCase { public function htmlShouldContainsSsoLinkToCiteDeLaMusiqueWhenActivated() { CiteDeLaMusiqueFixtures::activate(); - $expected_url = 'http://media.citedelamusique.fr/extranet/autologon/autologon.ashx?bib=34-mylib&backUrl=http%3A%2F%2Fmedia.citedelamusique.fr%2Fmedias%2Fdoc%2FEXTRANET%2FCIMU%2F1038311%2FDETAIL'; + $expected_url = 'https://admin-pad.philharmoniedeparis.fr/logon/34-mylib?backUrl=http%3A%2F%2Fmedia.citedelamusique.fr%2Fmedias%2Fdoc%2FEXTRANET%2FCIMU%2F1038311%2FDETAIL'; $this->assertXPathContentContains($this->_renderAlbum(), '//a[@href="' . $expected_url . '"]', -- GitLab