Skip to content
Snippets Groups Projects
Commit ec93b2c6 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

hotline #59209 : fix Numilog SSO url

parent 7862ffe3
Branches
Tags
4 merge requests!2334Master,!2122Master,!2121Hotline master,!2115hotline #59209 : fix Numilog SSO url
Pipeline #1180 passed with stage
in 11 minutes and 28 seconds
- ticket #59209 : Ressources numériques : maintenance du SSO Numilog
\ No newline at end of file
......@@ -44,26 +44,28 @@ class Class_NumilogLink {
}
function getTicket() {
public function getTicket() {
return (new Class_CasTicket())->getTicketForUser($this->_user);
}
function urlExternal($url_external){
if ($this->_user)
return $url_external.'&ticket='.$this->getTicket();
else
return $url_external;
public function urlExternal($url_external) {
return $this->_injectTicketInto($url_external);
}
function url(){
if ($this->_user)
return $this->getBaseUrl().'?ticket='.$this->getTicket();
else
return $this->getBaseUrl();
public function url() {
return $this->_injectTicketInto($this->getBaseUrl());
}
}
?>
\ No newline at end of file
protected function _injectTicketInto($url) {
if (!$this->_user)
return $url;
return $url
. (false !== strpos($url, '?') ? '&' : '?')
. 'ticket=' . $this->getTicket()
;
}
}
......@@ -19,60 +19,64 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
abstract class NumilogLinkTestCase extends Storm_Test_ModelTestCase {
public function setUp() {
parent::setUp();
Class_AdminVar::newInstanceWithId('NUMILOG_URL',['valeur' => 'http://urlnumilog/action']);
}
}
class NumilogLinkWithAbonTest extends NumilogLinkTestCase {
class NumilogLinkWithAbonTest extends ModelTestCase {
protected
$_http_client,
$_jerry;
$_storm_default_to_volatile = true,
$_link;
public function setUp() {
parent::setUp();
$this->_jerry = Class_Users::getLoader()
->newInstanceWithId(4)
->setIdabon(34)
->setLogin(34)
->setPrenom('Jerry')
->setNom('Khan')
->setMail('feu@essence.fr')
->setDateFin('2023-09-02');
Class_AdminVar::set('NUMILOG_URL', 'http://urlnumilog/action');
$this->_numilog = Class_NumilogLink::forUser($this->_jerry);
$this->_http_client = Storm_Test_ObjectWrapper::mock();
$this->_link = Class_NumilogLink::forUser(Class_Users::getLoader()
->newInstanceWithId(4)
->setIdabon(34)
->setLogin(34)
->setPrenom('Jerry')
->setNom('Khan')
->setMail('feu@essence.fr')
->setDateFin('2023-09-02'));
}
Class_WebService_Abstract::setDefaultHttpClient($this->_http_client);
protected function _ticketForSession() {
return 'ST-' . md5( Zend_Session::getId() . '4');
}
/** @test */
public function urlForJerryShouldBeNumilogSSO() {
$this->assertEquals('http://urlnumilog/action',
$this->_numilog->getBaseUrl());
$this->_link->getBaseUrl());
}
/** @test */
public function numilogUrlWithoutParamShouldReturnUrlWithTicket() {
$this->assertEquals('http://urlnumilog/action?ticket=' . $this->_ticketForSession(),
$this->_link->url());
}
/** @test */
public function numilogUrlShouldReturnUrlWithTicket() {
$this->assertEquals('http://urlnumilog/action?ticket=ST-'.md5( Zend_Session::getId() . '4'),
$this->_numilog->url());
public function numilogUrlWithParamsShouldReturnUrlWithTicket() {
Class_AdminVar::set('NUMILOG_URL', 'http://urlnumilog/action?my_param=3');
$this->assertEquals('http://urlnumilog/action?my_param=3&ticket=' . $this->_ticketForSession(),
$this->_link->url());
}
/** @test */
public function numilogUrlExternalShouldReturnUrlWithTicket() {
$this->assertEquals('http://url-given-bynumilog?withparam=2&ticket=ST-'.md5( Zend_Session::getId() . '4'),
$this->_numilog->urlExternal('http://url-given-bynumilog?withparam=2'));
public function numilogUrlExternalWithParamShouldReturnUrlWithTicket() {
$this->assertEquals('http://url-given-bynumilog?withparam=2&ticket=' . $this->_ticketForSession(),
$this->_link->urlExternal('http://url-given-bynumilog?withparam=2'));
}
}
?>
\ No newline at end of file
/** @test */
public function numilogUrlExternalWithoutParamShouldReturnUrlWithTicket() {
$this->assertEquals('http://url-given-bynumilog/322292?ticket=' . $this->_ticketForSession(),
$this->_link->urlExternal('http://url-given-bynumilog/322292'));
}
}
\ No newline at end of file
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