diff --git a/library/Class/DigitalResource/Config.php b/library/Class/DigitalResource/Config.php index 74cd9358373754d5f655f668f56ceb84bfecdf39..6ffa7a695a2dcf556c17d046bb24af0f6acb503c 100644 --- a/library/Class/DigitalResource/Config.php +++ b/library/Class/DigitalResource/Config.php @@ -270,6 +270,11 @@ class Class_DigitalResource_Config extends Class_Entity { } + public function renderSSODiagOn($view) { + return ''; + } + + public function getTestUser() { $login = $this->getName() . '_test_user'; $user = ($user = Class_Users::findFirstBy(['login' => $login])) diff --git a/library/ZendAfi/View/Helper/DigitalResource/Dashboard/SSO.php b/library/ZendAfi/View/Helper/DigitalResource/Dashboard/SSO.php index 18af75f2feab1c72480dfd52dcca227fc0b3dcf3..5286b9dd9085548daefd9426026092e775d096c5 100644 --- a/library/ZendAfi/View/Helper/DigitalResource/Dashboard/SSO.php +++ b/library/ZendAfi/View/Helper/DigitalResource/Dashboard/SSO.php @@ -63,7 +63,11 @@ class ZendAfi_View_Helper_DigitalResource_Dashboard_SSO extends ZendAfi_View_Hel $html [] = $this->_tag('h4', $this->_('URL SSO générée par /modules/%s pour l\'utilisateur "%s"', $config->getSsoAction(), $user->getLogin())); - $html [] = $this->_tag('pre', $config->urlFor($user)); + + $html [] = ($diag = $config->renderSSODiagOn($this->view)) + ? $diag + : $this->_getSSOHtml($config, $user); + $html [] = $this->view->button((new Class_Entity) ->setUrl($this->view->url(['action' => 'try-sso'])) ->setText($this->_('Essayer le SSO avec l\'utilisateur "%s"', @@ -77,6 +81,11 @@ class ZendAfi_View_Helper_DigitalResource_Dashboard_SSO extends ZendAfi_View_Hel } + protected function _getSSOHtml($config, $user) { + return $this->_tag('pre', $config->urlFor($user)); + } + + protected function _getAlbumSSOUrlHtml($config, $user) { if(!$album = Class_Album::findFirstby(['type_doc_id' => $config->getDocType()])) return ''; diff --git a/library/digital_resources/Cvs/Config.php b/library/digital_resources/Cvs/Config.php index c56edd7e1ced4671abdc76d6b94e3baa6332e5a7..61c85e3dbc63d6b70901a4cbdf72f6c6474817b8 100644 --- a/library/digital_resources/Cvs/Config.php +++ b/library/digital_resources/Cvs/Config.php @@ -157,4 +157,38 @@ class Cvs_Config extends Class_DigitalResource_Config { return implode($html); } + + + public function renderSSODiagOn($view) { + $user = $this->getTestUser(); + + $service = new Cvs_Service; + $service->setUser($user); + + $xml = $service->getSiteAccessXML($user); + $encoded_xml = $service->getEncodedXML($xml); + $original_response = $service->httpPost($xml); + $response = htmlentities($original_response); + + $parser = new Cvs_Service_Parser_SiteAccess(); + $parser->parseXML($original_response); + + $url = ($url = $parser->getUrl()) ? $url : ''; + + $html = [$view->tag('p', $this->_('Pour générer le lien de connexion SSO, plusieurs étapes sont nécessaires.')), + $view->tag('h4', $this->_('La première étape consiste à générer le XML qui servirat à la génération du paramètre "xml"')), + $view->tag('pre', htmlentities($xml)), + $view->tag('h4', $this->_('L\'étape suivante est une requête HTTP POST vers l\'API_URL avec le paramètre "xml" encodé')), + $view->tag('p', $this->_('API URL:')), + $view->tag('pre', $this->getAdminVar('API_URL')), + $view->tag('p', $this->_('XML encodé:')), + $view->tag('pre', $encoded_xml), + $view->tag('p', $this->_('Réponse reçue à la demande d\'accès au site :')), + $view->tag('pre', $response), + $view->tag('h4', $this->_('La dernière étape parcourt la réponse afin de récupérer l\'url de SSO')), + $view->tag('pre', $url) + ]; + + return implode($html); + } } \ No newline at end of file