From b9ec5cb050cf111bf7633d86d479ec1a6e9ce5d7 Mon Sep 17 00:00:00 2001
From: efalcy <efalcy@afi-sa.fr>
Date: Wed, 14 Jun 2023 10:46:52 +0000
Subject: [PATCH] dev#179153: CAS V3 add site_label

---
 VERSIONS_WIP/179153                           |  1 +
 library/Class/IdentityProvider/Cas3.php       |  1 +
 .../controllers/CasServerControllerV3Test.php | 21 +++++++++++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 VERSIONS_WIP/179153

diff --git a/VERSIONS_WIP/179153 b/VERSIONS_WIP/179153
new file mode 100644
index 00000000000..3d8d28c7685
--- /dev/null
+++ b/VERSIONS_WIP/179153
@@ -0,0 +1 @@
+ - fonctionnalité #179153 : Ressource Numérique Cafeyn : Ajout du libellé de la bibliothèque dans la réponse CAS V3
\ No newline at end of file
diff --git a/library/Class/IdentityProvider/Cas3.php b/library/Class/IdentityProvider/Cas3.php
index 95323a1b98a..1a6d1f9013f 100644
--- a/library/Class/IdentityProvider/Cas3.php
+++ b/library/Class/IdentityProvider/Cas3.php
@@ -37,6 +37,7 @@ class Class_IdentityProvider_Cas3 extends Class_IdentityProvider_Default {
             'idabon' => 'card_number',
             'id_sigb' => 'ils_number',
             'id_site' => 'site_code',
+            'libelle_bib' => 'site_label',
             'naissance' => 'birth_date',
             'code_postal' => 'postal_code',
             'civilite' => 'civilite',
diff --git a/tests/application/modules/opac/controllers/CasServerControllerV3Test.php b/tests/application/modules/opac/controllers/CasServerControllerV3Test.php
index 1ba77ba38b8..7f1492f2a65 100644
--- a/tests/application/modules/opac/controllers/CasServerControllerV3Test.php
+++ b/tests/application/modules/opac/controllers/CasServerControllerV3Test.php
@@ -32,9 +32,20 @@ class CasServerControllerV3ValidateActionTest extends AbstractControllerTestCase
     $user->ID_USER=300;
     $time_source = new TimeSourceForTest('2020-08-01 14:00:00');
     Class_CasTicketV3::setTimeSource($time_source);
+    $this->fixture(Class_Bib::class,
+                   ['id' => 3,
+                    'libelle' => 'Bonlieu']);
+
+    $this->fixture(Class_CodifAnnexe::class,
+                   ['id' => 4,
+                    'id_origine' => 'A3',
+                    'libelle' => 'Annecy Bonlieu',
+                    'id_bib' => 3]);
+
     $user = Class_Users::newInstanceWithId(300,
                                            ['login' => '87364',
                                             'password' => 'test',
+                                            'id_site' => '3',
                                             'pseudo' => 'georges']);
     $cas = (new Class_CasTicketV3('http://test.com'));
 
@@ -107,6 +118,16 @@ class CasServerControllerV3ValidateActionTest extends AbstractControllerTestCase
   }
 
 
+  /** @test */
+  public function requestWithValidTicketPrefixedBySTShouldRespondSiteCodeAndSiteLabelXML() {
+    $this->dispatch(sprintf('/opac/cas-server-v3/validate?ticket=%s&service=%s',
+                            $this->_ticket_v3,
+                            urlencode('http://test.com')));
+    $this->assertContains('<cas:site_code>3</cas:site_code>', $this->_response->getBody());
+    $this->assertContains('<cas:site_label>Bonlieu</cas:site_label>', $this->_response->getBody());
+  }
+
+
   /** @test */
   public function whenLogginCasTicketShouldBeCasV3() {
     $this->postDispatch('/opac/auth/login/redirect/%F',
-- 
GitLab