Skip to content
Snippets Groups Projects
Commit c5e94094 authored by Alex Arnaud's avatar Alex Arnaud
Browse files

Merge branch 'hotline#180601_Add_site_access_to_Cvs2_followup' into 'master'

hotline#180601 : fix site access for Cvs2

See merge request !4761
parents cdfcd70c 780bcb58
Branches
Tags
1 merge request!4761hotline#180601 : fix site access for Cvs2
Pipeline #23903 passed with stage
in 24 minutes and 37 seconds
......@@ -104,11 +104,6 @@ class Cvs2_Config extends Class_DigitalResource_Config {
}
public function getSsoUrl(Class_Users $user) : string {
return (new Cvs2_Service($this))->getSiteAccessFor($user);
}
public function hasRightAccess($user) : bool {
if ($this->getAdminVar('ANONYMOUS_ACCESS'))
return true;
......@@ -120,13 +115,13 @@ class Cvs2_Config extends Class_DigitalResource_Config {
public function getAlbumSsoUrl(?Class_Users $user, ?Class_Album $album) : string {
if (!$user)
if (!$user)
return $this->_getConnectionLink();
if ($this->_isAccesDirectFor($album))
return (new Cvs2_AccesDirect($album))->url();
return $this->getSsoUrl($user) . ($album ? '/album/' . $album->getIdOrigine() : '');
return (new Cvs2_Service($this))->getSiteAccessFor($user, $album);
}
......
......@@ -283,27 +283,29 @@ class Cvs2_Service extends Class_DigitalResource_Service {
}
public function getSiteAccessFor($user) {
$response = $this->_callSiteAccess($user);
public function getSiteAccessFor($user, ?Class_Album $album) {
$response = $this->_callSiteAccess($user, $album);
$parser = new Cvs_Service_Parser_SiteAccess;
$parser->parseXML($response);
return $parser->isSuccess() ? $this->getConfig()->getAdminVar('CATALOG_URL') : '';
return $parser->isSuccess() ? $parser->getUrl() : '';
}
protected function _callSiteAccess($user) {
$xml = $this->getSiteAccessXML($user);
protected function _callSiteAccess($user, ?Class_Album $album) {
$xml = $this->getSiteAccessXML($user, $album);
return $this->httpPost($xml);
}
public function getSiteAccessXML($user) {
public function getSiteAccessXML($user, ?Class_Album $album) {
$this->_user = $user;
$params = ['querystring' => '',
'affichage' => 'complet'];
$params = ['affichage' => 'complet'];
if ($album)
$params['querystring'] = '/album/' . $album->getIdOrigine();
$closure = function($xml, $params) {
$this->_appendSiteAccess($xml, $params);
......
......@@ -122,7 +122,7 @@ class Cvs2ActivatedAccessSiteSsoTestCase extends Cvs2ActivatedTestCase {
<time>1526288804</time>
<action>acces_site</action>
<data>
<url>https://rayonnages.mediatheques.fr/?ln=&amp;con=090021b6dae3bf74759e4e0e47f754af&amp;if=0</url>
<url>https://rayonnages.mediatheques.fr/album/135?ln=&amp;con=090021b6dae3bf74759e4e0e47f754af&amp;if=0</url>
<token>090021b6dae3bf74759e4e0e47f754af</token>
</data>
</response>');
......@@ -133,10 +133,9 @@ class Cvs2ActivatedAccessSiteSsoTestCase extends Cvs2ActivatedTestCase {
/** @test */
public function shouldRedirectToCvs2() {
$this->dispatch('/modules/cvs2/123', true);
$this->dispatch('/modules/cvs2/album_id/123', true);
$this->assertXPathContentContains('//script',
'document.location.href="http://cvs-site.com',
$this->_response->getBody());
'document.location.href="https://rayonnages.mediatheques.fr/album/135');
}
}
......@@ -302,32 +301,6 @@ class Cvs2ModuleMenuTest extends Cvs2ActivatedTestCase {
class Cvs2SsoTest extends Cvs2ActivatedTestCase {
public function setUp() {
parent::setUp();
ZendAfi_Auth::getInstance()->logUser($this->_user);
Class_AdminVar::set('Cvs2_CATALOG_URL','http://eureka.mediatheque.fr');
}
/** @test */
public function shouldRedirectToCvs2() {
$this->dispatch('/opac/modules/cvs2');
$this->assertXPathContentContains('//script',
'document.location.href="http://eureka.mediatheque.fr');
}
/** @test */
public function shouldRedirectToAlbum() {
$this->dispatch('/opac/modules/cvs2/album_id/123');
$this->assertXPathContentContains('//script',
'http://eureka.mediatheque.fr/album/135');
}
}
abstract class Cvs2SsoTestWithAccesDirectTestCase extends Cvs2ActivatedTestCase {
public function setUp() {
parent::setUp();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment