diff --git a/VERSIONS_WIP/202853 b/VERSIONS_WIP/202853 new file mode 100644 index 0000000000000000000000000000000000000000..3ad1f49bc222176037acaa62d26fb7ad2b0b2bef --- /dev/null +++ b/VERSIONS_WIP/202853 @@ -0,0 +1 @@ + - fonctionnalité #202853 : Changement URL cafeyn : migration automatique du lien modules/sso \ No newline at end of file diff --git a/cosmogramme/sql/patch/patch_466.php b/cosmogramme/sql/patch/patch_466.php new file mode 100644 index 0000000000000000000000000000000000000000..37a0bfaf1fcf8aad9be78bec43d835d4d4e1cbfe --- /dev/null +++ b/cosmogramme/sql/patch/patch_466.php @@ -0,0 +1,8 @@ +<?php +$adapter = Zend_Db_Table::getDefaultAdapter(); +try +{ + $adapter->query('update `bib_admin_var` set `valeur`="https://www.cafeyn.co/fr/loginexternal" where not `valeur`="" and `clef`="Cafeyn_SSO_URL";'); +} +catch (Exception $e) +{} diff --git a/library/Class/Url.php b/library/Class/Url.php index e6aaddf39edd9da127af1fd6fa3ccc606cfbbbea..04f7d1788de91e333f164d078abc844676a2a783 100644 --- a/library/Class/Url.php +++ b/library/Class/Url.php @@ -233,6 +233,12 @@ class Class_Url { } + public static function appendWithSlash(string $url, string $chunk): string + { + return rtrim($url , "/ \n\r\t\v\x00") .'/'. $chunk; + } + + protected static function _prependBaseUrl($url) { if('' === $url) return static::baseUrl(); diff --git a/library/digital_resources/Cafeyn/CasLink.php b/library/digital_resources/Cafeyn/CasLink.php index 7b4d7ae475ed470d197066962c18cf873b66ac0b..1b91196801a78d637ee8975072707b29d5143699 100644 --- a/library/digital_resources/Cafeyn/CasLink.php +++ b/library/digital_resources/Cafeyn/CasLink.php @@ -25,6 +25,6 @@ class Cafeyn_CasLink { $config = Cafeyn_Config::getInstance(); return $album ? $album->getExternalUri() - : $config->getAdminVar('SSO_URL') . $config->getAdminVar('ID'); + : Class_Url::appendWithSlash($config->getAdminVar('SSO_URL'), $config->getAdminVar('ID')); } } diff --git a/library/digital_resources/Cafeyn/tests/CafeynTest.php b/library/digital_resources/Cafeyn/tests/CafeynTest.php index c7690beb92aab15a86cd09294286518ed94ac8c3..b7b34636dfe06d6efb5b1e687e422c3fce9eb706 100644 --- a/library/digital_resources/Cafeyn/tests/CafeynTest.php +++ b/library/digital_resources/Cafeyn/tests/CafeynTest.php @@ -24,7 +24,7 @@ class CafeynAdminVars { public static function activate() { Class_AdminVar::set('Cafeyn_ID', '66'); - Class_AdminVar::set('Cafeyn_SSO_URL', 'https://www.cafeyn.co/loginexternal/'); + Class_AdminVar::set('Cafeyn_SSO_URL', "https://www.cafeyn.co/loginexternal//// \t\n"); Class_AdminVar::set('Cafeyn_API_PASSWORD', 'POIS'); Class_AdminVar::set('Cafeyn_API_ID', 'mybib'); Class_AdminVar::set('Cafeyn_HARVEST_URL', 'https://harvest-cafeyn'); diff --git a/tests_db/UpgradeDBTest.php b/tests_db/UpgradeDBTest.php index 6f8fffaa76803ba6ab598de4a8cfb86184f68403..e96e805e33680e40e133254f119dc131b5ea200b 100644 --- a/tests_db/UpgradeDBTest.php +++ b/tests_db/UpgradeDBTest.php @@ -5729,7 +5729,7 @@ class UpgradeDB_461_Test extends UpgradeDBTestCase { -abstract class UpgradeDB_462_Cafeyn_TestCase extends UpgradeDBTestCase { +abstract class AbstractCafeyn_TestCase extends UpgradeDBTestCase { protected int $_album_artevod_count = 0; protected int $_album_artevod_inserted = 0; @@ -5795,7 +5795,7 @@ abstract class UpgradeDB_462_Cafeyn_TestCase extends UpgradeDBTestCase { -class UpgradeDB_462_Test_BatchEnabledTest extends UpgradeDB_462_Cafeyn_TestCase { +class UpgradeDB_462_Test_BatchEnabledTest extends AbstractCafeyn_TestCase { public function prepare() { @@ -5829,7 +5829,7 @@ class UpgradeDB_462_Test_BatchEnabledTest extends UpgradeDB_462_Cafeyn_TestCase -class UpgradeDB_462_Test_BatchDisabledTest extends UpgradeDB_462_Cafeyn_TestCase { +class UpgradeDB_462_Test_BatchDisabledTest extends AbstractCafeyn_TestCase { public function prepare() { @@ -6011,3 +6011,31 @@ class UpgradeDB_465_Test extends UpgradeDBTestCase $this->assertEquals('1000 1001', $data['a_moderer']); } } + + + + +class UpgradeDB_466_Test extends UpgradeDBTestCase +{ + + public function prepare() + { + $this + ->query('update bib_admin_var set valeur="myoldurl" where clef="Cafeyn_SSO_URL"'); + + if (!$this + ->query('select count(*) from bib_admin_var where clef ="Cafeyn_SSO_URL"') + ->fetch()['count(*)']) + $this + ->query('insert into bib_admin_var (valeur, clef) values ("myoldurl", "Cafeyn_SSO_URL")'); + } + + + /** + * @test + */ + public function cafeynSsoUrlShouldBeModified() + { + $this->assertEquals("https://www.cafeyn.co/fr/loginexternal", Class_AdminVar::get('Cafeyn_SSO_URL')); + } +}