diff --git a/application/modules/admin/views/scripts/modules/auth_form.phtml b/application/modules/admin/views/scripts/modules/auth_form.phtml index e74e3328b5083dd1dc0d21a889c4dee1820f27fc..f61f52738e7bf9f7face6edee5739c7d14efc092 100644 --- a/application/modules/admin/views/scripts/modules/auth_form.phtml +++ b/application/modules/admin/views/scripts/modules/auth_form.phtml @@ -34,6 +34,17 @@ <td class="gauche"><input type="text" name="mot_de_passe_exemple" size="50" value="<?php print($this->preferences["mot_de_passe_exemple"]); ?>"></td> </tr> +<tr> + <td class="droite">Désactiver l'auto-complétion </td> + <td class="gauche"> + <?php + echo $this->formCheckbox('autocomplete_off', + (int)$this->preferences["autocomplete_off"], + null, + [1, 0]); + ?> + </td> +</tr> <tr> <td class="droite">Libelle lien connexion </td> diff --git a/library/Class/Systeme/ModulesAccueil/Login.php b/library/Class/Systeme/ModulesAccueil/Login.php index 91666018f1b3782c4fc06b87a4770fc64b9941e4..80126d766bd778563e32e398c3698e25a8f8b140 100644 --- a/library/Class/Systeme/ModulesAccueil/Login.php +++ b/library/Class/Systeme/ModulesAccueil/Login.php @@ -53,7 +53,8 @@ class Class_Systeme_ModulesAccueil_Login extends Class_Systeme_ModulesAccueil_Nu 'lien_creer_compte' => '» S\'enregistrer', 'message_connecte' => 'Bienvenue', 'lien_compte' => '» Mon compte', - 'lien_deconnection' => '» Se déconnecter' + 'lien_deconnection' => '» Se déconnecter', + 'autocomplete_off' => 1 // si == 1, rajoute autocomplete="off" au formulaire ]; } ?> \ No newline at end of file diff --git a/library/Class/Systeme/ModulesAppli.php b/library/Class/Systeme/ModulesAppli.php index 7d5fe425b58d6e199e006a146826d415738c93e0..320629914a2c0e05e7a6069cf9c2563e93754edb 100644 --- a/library/Class/Systeme/ModulesAppli.php +++ b/library/Class/Systeme/ModulesAppli.php @@ -53,7 +53,7 @@ class Class_Systeme_ModulesAppli extends Class_Systeme_ModulesAbstract { 'auth' => array( '*' => array('libelle' => 'Connexion', 'popup_width' => 500, 'popup_height' => 300), - 'login' => array('libelle' => 'Connexion utilisateur', 'popup_width' => 500, 'popup_height' => 300), + 'login' => array('libelle' => 'Connexion utilisateur', 'popup_width' => 800, 'popup_height' => 700), 'register' => array('libelle' => 'Demande d\'inscription', 'popup_width' => 710, 'popup_height' => 290), 'lostpass' => array('libelle' => 'Mot de passe oublié', 'popup_width' => 710, 'popup_height' => 290) ), diff --git a/library/ZendAfi/Form/Login.php b/library/ZendAfi/Form/Login.php index 000db12de785c261e0a82a0d51bf632c60fca9e0..dd5e1579a7862d1abc8d80b9506bdc9056d46c62 100644 --- a/library/ZendAfi/Form/Login.php +++ b/library/ZendAfi/Form/Login.php @@ -37,7 +37,7 @@ class ZendAfi_Form_Login extends ZendAfi_Form { 'register']; $this->setMethod(Zend_Form::METHOD_POST) - ->setAttrib('autocomplete', 'off') + ->setAttrib('autocomplete', $this->_data['autocomplete_off'] ? 'off' : 'on') ->setAttrib('class', 'login') ->addElement('text', 'username', diff --git a/tests/application/modules/admin/controllers/AccueilControllerTest.php b/tests/application/modules/admin/controllers/AccueilControllerTest.php index 204889d140d66c10029bebe2f759274988c5d111..1c6485e0976932cec76bf9bb1b94aefc25136191 100644 --- a/tests/application/modules/admin/controllers/AccueilControllerTest.php +++ b/tests/application/modules/admin/controllers/AccueilControllerTest.php @@ -439,7 +439,7 @@ class AccueilControllerConfigBoiteLoginTest extends Admin_AbstractControllerTest 'division' => 4, 'id_module' => 32, 'preferences' => array())); - $this->dispatch('/admin/accueil/login?config=accueil&type_module=LOGIN&id_module=32'); + $this->dispatch('/admin/accueil/login?config=accueil&type_module=LOGIN&id_module=32', true); } @@ -484,6 +484,13 @@ class AccueilControllerConfigBoiteLoginTest extends Admin_AbstractControllerTest $this->assertXPath('//input[@name="lien_compte"][@value="» Mon compte"]'); } + + /** @test */ + public function checkBoxDisableAutocompleteShouldBeChecked() { + $this->assertXPath('//input[@name="autocomplete_off"][@checked="checked"]'); + } + + /** @test */ public function profilShouldBeValid() { $this->assertTrue(Class_Profil::getCurrentProfil()->isValid()); diff --git a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php index bd207b7edc4f9e37ff6451b97fed1c10b3eb6e6b..884fe526966622c396c7a605b8fe2a94a1c84748 100644 --- a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php +++ b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php @@ -226,6 +226,14 @@ class ProfilOptionsControllerProfilAdulteTest extends ProfilOptionsControllerWit } + /** @test */ + public function autocompleteShouldBeAuth() { + $this->profil_adulte->setCfgModules(['auth' => ['login' => ['autocomplete_off' => 0]]]); + $this->dispatch('/opac/auth/login'); + $this->assertXPath('//form[@class="login form"][@autocomplete="on"]'); + } + + /** @test */ public function getHauteurBanniereShouldReturn150() { $this->assertEquals(150, $this->profil_adulte->getHauteurBanniere()); @@ -674,6 +682,12 @@ class ProfilOptionsControllerProfilJeunesseViewPageJeuxTest extends ProfilOption } + /** @test */ + public function boiteLoginShouldHaveAutocompleteSetToOff() { + $this->assertXPath("//div[@id='boite_login']//form[@autocomplete='off']"); + } + + /** @test */ public function boiteNewsShouldNotBeVisibleInPageJeux() { $this->assertNotXPathContentContains("//a[contains(@href, 'articleviewselection')]",'Articles');