From 57891f05c19dc7f4da7cc273fcfd1e4d8e77fee9 Mon Sep 17 00:00:00 2001 From: efalcy <stl@gresille.org> Date: Wed, 14 May 2014 18:41:57 +0200 Subject: [PATCH] dev#13582 change profil deconexion , display option (work in progress) --- .../views/scripts/modules/auth_form.phtml | 12 ++++++++++++ .../opac/controllers/AuthController.php | 5 ++++- .../Class/Systeme/ModulesAccueil/Login.php | 3 ++- library/ZendAfi/Controller/Action.php | 10 +++++++++- .../controllers/AccueilControllerTest.php | 13 +++++++++++++ .../opac/controllers/AuthControllerTest.php | 19 ++++++++++++++++++- 6 files changed, 58 insertions(+), 4 deletions(-) diff --git a/application/modules/admin/views/scripts/modules/auth_form.phtml b/application/modules/admin/views/scripts/modules/auth_form.phtml index 4b8f12f734f..90c22cde8a4 100644 --- a/application/modules/admin/views/scripts/modules/auth_form.phtml +++ b/application/modules/admin/views/scripts/modules/auth_form.phtml @@ -79,3 +79,15 @@ ?> </td> </tr> + + +<tr> + <td class="droite">Déconnexion : basculer sur le profil: </td> + <td class="gauche"> + <?php $this->getHelper('ComboProfils') + ->setTagId('profil_deco_redirect') + ->setTagName('profil_deco_redirect'); + echo $this->ComboProfils('ALL', 'ALL', $this->preferences['profil_deco_redirect']); + ?> + </td> +</tr> diff --git a/application/modules/opac/controllers/AuthController.php b/application/modules/opac/controllers/AuthController.php index 70e6c899a49..8e856c42534 100644 --- a/application/modules/opac/controllers/AuthController.php +++ b/application/modules/opac/controllers/AuthController.php @@ -151,8 +151,11 @@ class AuthController extends ZendAfi_Controller_Action { function logoutAction() { + $preferences = Class_Profil::getCurrentProfil()->getCfgModulesPreferences('auth','login'); + ZendAfi_Auth::getInstance()->clearIdentity(); - $this->_redirectToParentProfil(); + xdebug_break(); + $this->_redirectToDecoProfil($preferences); } diff --git a/library/Class/Systeme/ModulesAccueil/Login.php b/library/Class/Systeme/ModulesAccueil/Login.php index 5a91f2973f4..1eb5a5f0e47 100644 --- a/library/Class/Systeme/ModulesAccueil/Login.php +++ b/library/Class/Systeme/ModulesAccueil/Login.php @@ -55,7 +55,8 @@ class Class_Systeme_ModulesAccueil_Login extends Class_Systeme_ModulesAccueil_Nu 'lien_compte' => '» Mon compte', 'lien_deconnection' => '» Se déconnecter', 'autocomplete_off' => 1 ,// si == 1, rajoute autocomplete="off" au formulaire - 'profil_redirect' => '0' + 'profil_redirect' => '0', + 'profil_deco_redirect' => '0' ]; } ?> \ No newline at end of file diff --git a/library/ZendAfi/Controller/Action.php b/library/ZendAfi/Controller/Action.php index fc0100b4c8a..93d073a1fae 100644 --- a/library/ZendAfi/Controller/Action.php +++ b/library/ZendAfi/Controller/Action.php @@ -105,7 +105,7 @@ class ZendAfi_Controller_Action extends Zend_Controller_Action { public function editAction() { if (!$model = $this->_definitions->find($this->_getParam('id'))) { - $this->_redirectToIndex(); + $this->_rectToIndex(); return; } $this->view->titre = $this->_definitions->editActionTitle($model); @@ -147,6 +147,14 @@ class ZendAfi_Controller_Action extends Zend_Controller_Action { } + protected function _redirectToDecoProfil($preferences) { + if ($preferences['profil_deco_redirect']>0) + $this->_redirect('/opac/index/index/id_profil/'.$preferences['profil_deco_redirect']); + else + $this->_redirectToParentProfil(); + } + + protected function _redirectToEdit($model) { $this->_redirect('/admin/'.$this->_request->getControllerName().'/edit/id/'.$model->getId()); } diff --git a/tests/application/modules/admin/controllers/AccueilControllerTest.php b/tests/application/modules/admin/controllers/AccueilControllerTest.php index 8f9b27d90f5..2b63a84b0e2 100644 --- a/tests/application/modules/admin/controllers/AccueilControllerTest.php +++ b/tests/application/modules/admin/controllers/AccueilControllerTest.php @@ -477,6 +477,7 @@ class AccueilControllerConfigBoiteLoginTest extends Admin_AbstractControllerTest 'division' => 4, 'id_module' => 32, 'preferences' => ['profil_redirect'=>'1', + 'profil_deco_redirect' => '1', 'mot_de_pass_exemple' => 'dd/mm/aaaa']]); $this->dispatch('/admin/accueil/login?config=accueil&type_module=LOGIN&id_module=32', true); } @@ -488,6 +489,12 @@ class AccueilControllerConfigBoiteLoginTest extends Admin_AbstractControllerTest } + /** @test */ + public function selectDecoProfilRedirectShouldContainsProfil1() { + $this->assertXPathContentContains('//select[@id="profil_deco_redirect"][@name="profil_deco_redirect"]/optgroup/option[@value="1"][@selected="selected"]', 'portail: Accueil', $this->_response->getBody()); + } + + /** @test */ public function inputTitreShouldBeSeConnecter() { $this->assertXPath('//input[@name="titre"][@value="Se connecter"]'); @@ -552,6 +559,12 @@ class AccueilControllerConfigBoiteLoginTest extends Admin_AbstractControllerTest public function selectProfilShloudBeEmptyValue() { $this->assertXPath('//td/select[@id="profil_redirect"]/option'); } + + /** @test **/ + public function selectProfilDeconnectionShouldBeEmptyValue() { + $this->assertXPath('//td/select[@id="profil_deco_redirect"]/option'); + } + } diff --git a/tests/application/modules/opac/controllers/AuthControllerTest.php b/tests/application/modules/opac/controllers/AuthControllerTest.php index e2f936bc7cf..dafeec35c33 100644 --- a/tests/application/modules/opac/controllers/AuthControllerTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerTest.php @@ -39,7 +39,8 @@ abstract class PortailWithOneLoginModuleTestCase extends AbstractControllerTestC 'titre_connecte' => 'Vous êtes connecté(e)', 'lien_connexion' => 'please, log me', 'lien_mot_de_passe_oublie' => 'me rappelle plus', - 'profil_redirect' => 1]]], + 'profil_redirect' => 1, + 'profil_deco_redirect' => 5]]], 'options' => []]; Class_Profil::getCurrentProfil() @@ -194,6 +195,22 @@ class AuthControllerWithProfilPageAbonneSIGBLoggedLogoutTest extends PortailWith } + +class AuthControllerWithProfilPageAbonneSIGBLoggedLogoutDeconnectionProfilTest extends PortailWithOneLoginModuleTestCase { + public function setUp() { + parent::setUp(); + $this->dispatch('/opac/auth/logout'); + } + + + /** @test **/ + public function linkSeDeconnecterShouldRedirectToSelectedProfil5() { + $this->assertRedirectTo('/opac/index/index/id_profil/5'); + } + +} + + abstract class AuthControllerNobodyLoggedTestCase extends PortailWithOneLoginModuleTestCase { public function setUp() { parent::setUp(); -- GitLab