From 70620ecff078fa83e7e7cb7c0c4936e2fc9636ab Mon Sep 17 00:00:00 2001 From: gloas <gloas@debianAfiAnnecy> Date: Tue, 21 Jan 2014 16:51:59 +0100 Subject: [PATCH] Boite-login: lorsqu'on clique sur "se deconnecter" -> redirige vers le profil parent --- .../opac/controllers/AuthController.php | 2 +- .../opac/views/scripts/auth/boite-login.phtml | 3 +- library/ZendAfi/Controller/Action.php | 6 ++++ .../opac/controllers/AuthControllerTest.php | 34 +++++++++++++++++-- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/application/modules/opac/controllers/AuthController.php b/application/modules/opac/controllers/AuthController.php index 82c4ee17481..33b842bef20 100644 --- a/application/modules/opac/controllers/AuthController.php +++ b/application/modules/opac/controllers/AuthController.php @@ -150,7 +150,7 @@ class AuthController extends ZendAfi_Controller_Action { function logoutAction() { ZendAfi_Auth::getInstance()->clearIdentity(); - $this->_redirect('/'); + $this->_redirectToParentProfil(); } diff --git a/application/modules/opac/views/scripts/auth/boite-login.phtml b/application/modules/opac/views/scripts/auth/boite-login.phtml index 90872411e2b..9a452b2dcaa 100644 --- a/application/modules/opac/views/scripts/auth/boite-login.phtml +++ b/application/modules/opac/views/scripts/auth/boite-login.phtml @@ -9,8 +9,7 @@ if ($user->hasIdabon()) echo $this->ficheAbonneLinks($user->getNbEmprunts(), $user->getNbEmpruntsRetard(), $user->getNbReservations()); echo sprintf('<a href="%s" target="_parent">%s</a>', $this->url(['controller'=>'auth', - 'action'=>'logout', - 'id_profil'=>$this->preferences['profil_redirect'] > 0 ? $this->preferences['profil_redirect'] : Class_Profil::getCurrentProfil()->getId()],null,true), $this->_($this->preferences['lien_deconnection'])); + 'action'=>'logout'],null,true), $this->_($this->preferences['lien_deconnection'])); } else { $form = ZendAfi_Form_Login::newWithOptions(['data' => array_merge( $this->preferences, diff --git a/library/ZendAfi/Controller/Action.php b/library/ZendAfi/Controller/Action.php index 259247c657f..fc0100b4c8a 100644 --- a/library/ZendAfi/Controller/Action.php +++ b/library/ZendAfi/Controller/Action.php @@ -141,6 +141,12 @@ class ZendAfi_Controller_Action extends Zend_Controller_Action { } + protected function _redirectToParentProfil() { + $current_profil = Class_Profil::getCurrentProfil(); + $this->_redirect($current_profil->hasParentProfil() ? '/opac/index/index/id_profil/'.$current_profil->getParentProfil()->getId() : '/'); + } + + protected function _redirectToEdit($model) { $this->_redirect('/admin/'.$this->_request->getControllerName().'/edit/id/'.$model->getId()); } diff --git a/tests/application/modules/opac/controllers/AuthControllerTest.php b/tests/application/modules/opac/controllers/AuthControllerTest.php index 0df33877074..96c08d9969b 100644 --- a/tests/application/modules/opac/controllers/AuthControllerTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerTest.php @@ -163,6 +163,32 @@ class AuthControllerAbonneSIGBLoggedLogoutTest extends PortailWithOneLoginModule } +class AuthControllerWithProfilPageAbonneSIGBLoggedLogoutTest extends PortailWithOneLoginModuleTestCase { + public function setUp() { + parent::setUp(); + $this->profil_adulte = $this->fixture('Class_Profil', ['id' => 22]) + ->setBrowser('opac') + ->setLibelle('Profil Adulte') + ->setHauteurBanniere(150) + ->setCouleurTexteBandeau('#F2C') + ->setCouleurLienBandeau('#234') + ->setMenuHautOn(true) + ->setCfgMenus([]) + ->setCommentaire('Super bib') + ->setRefTags('bib,Adulte') + ->setParentProfil(Class_Profil::getCurrentProfil()); + $this->profil_adulte->assertSave(); + Class_Profil::setCurrentProfil($this->profil_adulte); + $this->dispatch('/opac/auth/logout'); + } + + + /** @test **/ + public function linkSeDeconnecterShouldRedirectToParentProfil() { + $this->assertRedirectTo('/opac/index/index/id_profil/2'); + } + +} abstract class AuthControllerNobodyLoggedTestCase extends PortailWithOneLoginModuleTestCase { @@ -1007,14 +1033,16 @@ class portailWithOneLoginModuleTestAndLoggedUserCase extends AbstractControllerT /** @test */ - public function redirectProfilForLogoutShouldNotBeProfil2(){ - $this->assertXPath('//a[contains(@href,"auth/logout/id_profil/2")]',$this->_response->getBody()); + public function redirectProfilForLogoutShouldBeProfilParent(){ + $this->bootstrap(); + $this->dispatch('opac/auth/logout'); + $this->assertRedirectTo('/'); } /** @test */ public function redirectProfilForLogoutShouldNotBeProfil0(){ - $this->assertNotXPath('//a[contains(@href,"abonne/logout/id_profil/0")]',$this->_response->getBody()); + $this->assertNotXPath('//a[contains(@href,"auth/logout/id_profil/")]',$this->_response->getBody()); } } -- GitLab