diff --git a/VERSIONS_HOTLINE/39780 b/VERSIONS_HOTLINE/39780 new file mode 100644 index 0000000000000000000000000000000000000000..14837ee89d590c18d17d0fc1f38125a8ed51d2fa --- /dev/null +++ b/VERSIONS_HOTLINE/39780 @@ -0,0 +1 @@ + - ticket #39780 : Correction d'une page blanche pouvant arriver sur la création d'un compte. \ No newline at end of file diff --git a/application/modules/opac/controllers/AuthController.php b/application/modules/opac/controllers/AuthController.php index bbcd1e00fa68d78a64080384662628723278e4ad..f52a7ae20ab930f77e41fba530fabf6b45cb30dc 100644 --- a/application/modules/opac/controllers/AuthController.php +++ b/application/modules/opac/controllers/AuthController.php @@ -227,9 +227,12 @@ class AuthController extends ZendAfi_Controller_Action { $this->view->login = $data["login"]; $this->view->email = $data["mail"]; $this->view->email2 = $data["mail2"]; - $this->view->error = '<div align="center" class="error">' . $ret["error"] . '</div>'; + $this->view->error = $ret["error"]; } - $this->view->message_mail=$ret["message_confirm"]; + + $this->view->message_mail = isset($ret["message_confirm"]) + ? $ret["message_confirm"] + : ''; } // Opération terminée diff --git a/application/modules/opac/views/scripts/auth/register.phtml b/application/modules/opac/views/scripts/auth/register.phtml index 63214280aae939dc572908b804f6786f8ff2b92c..f1c97e20dd2760d01d0ea7818f88daf0cc64df8f 100644 --- a/application/modules/opac/views/scripts/auth/register.phtml +++ b/application/modules/opac/views/scripts/auth/register.phtml @@ -2,10 +2,11 @@ <p><?php echo nl2br($this->preferences["register_help"]); ?></p> <?php - echo $this->renderForm($this->form); -?> +if ($this->error) + echo $this->tag('p', $this->error, ['class' => 'error']); -<?php echo $this->error; ?> -<?php $this->closeBoite() ?> +$this->closeBoite(); + +?> diff --git a/library/Class/Users.php b/library/Class/Users.php index 6e9f55f9e321162559f36a3d2a41ac29d701eb61..575b61547ec8efb47931c5181d6d48b5283ae4f8 100644 --- a/library/Class/Users.php +++ b/library/Class/Users.php @@ -1026,7 +1026,7 @@ class Class_Users extends Storm_Model_Abstract { ->addBcc($mail_admin) ->send(); } catch (Exception $e) { - $ret["message_mail"]='<p class="error">'.$e->getMessage().'</p>'; + $ret["error"] = $e->getMessage(); return $ret; } diff --git a/library/ZendAfi/Filters/Post.php b/library/ZendAfi/Filters/Post.php index 0140654827a52b57f4f6eefd08ad3a25035d25cb..12e84605294ba2d71d38cd1df3312bf68b52980a 100644 --- a/library/ZendAfi/Filters/Post.php +++ b/library/ZendAfi/Filters/Post.php @@ -16,24 +16,20 @@ * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with BOKEH; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -////////////////////////////////////////////////////////////////////////////////////////////////////////// -// OPAC3 : FILTRE POUR LES _POST -// -////////////////////////////////////////////////////////////////////////////////////////////////////////// -class ZendAfi_Filters_Post extends Zend_Filter -{ - public static function filterStatic($data) - { - if(!is_array($data)) return trim(strip_tags($data)); - foreach($data as $clef => $valeur) - { - $valeur=trim($valeur); - $valeur=strip_tags($valeur); - $new[$clef]=$valeur; +class ZendAfi_Filters_Post extends Zend_Filter { + public static function filterStatic($data) { + if (!is_array($data)) + return trim(strip_tags($data)); + + foreach($data as $clef => $valeur) { + $new[$clef] = is_array($valeur) + ? $valeur : + trim(strip_tags($valeur)); } + return $new; } } \ No newline at end of file diff --git a/tests/application/modules/opac/controllers/AuthControllerTest.php b/tests/application/modules/opac/controllers/AuthControllerTest.php index e9d27adfb46ac008cd6d7cdb3c3a2c5efb97a2f9..1955b3f321b45f73ae1afb6d50d6db46e08cdc18 100644 --- a/tests/application/modules/opac/controllers/AuthControllerTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerTest.php @@ -1337,7 +1337,8 @@ class AuthControllerNobodyLoggedAndRegistrationAllowedWithOptionalFieldsRegister -class AuthControllerNobodyLoggedRegisterPostRightDatasTest extends AuthControllerNobodyLoggedTestCase { + +abstract class AuthControllerNobodyLoggedRegisterActionTestCase extends AuthControllerNobodyLoggedTestCase { public function setUp() { parent::setUp(); ZendAfi_Form_Element_Captcha::beValid(); @@ -1356,6 +1357,15 @@ class AuthControllerNobodyLoggedRegisterPostRightDatasTest extends AuthControlle Class_AdminVar::newInstanceWithId('INTERDIRE_ENREG_UTIL', ['valeur' => 0]); + } +} + + + + +class AuthControllerNobodyLoggedRegisterPostRightDatasTest extends AuthControllerNobodyLoggedRegisterActionTestCase { + public function setUp() { + parent::setUp(); $this->postDispatch('auth/register', ['login' => 'mario', @@ -1363,8 +1373,8 @@ class AuthControllerNobodyLoggedRegisterPostRightDatasTest extends AuthControlle 'mail2' => 'mario@afi-sa.fr', 'mdp' => 'secret', 'mdp2' => 'secret', - 'captcha[id]' => '1234', - 'captcha[input]' => '1234']); + 'captcha' => ['id' => '1234', + 'input' => '1234']]); } @@ -1435,6 +1445,34 @@ class AuthControllerNobodyLoggedRegisterPostRightDatasTest extends AuthControlle +class AuthControllerNobodyLoggedRegisterPostSendMailErrorsTest extends AuthControllerNobodyLoggedRegisterActionTestCase { + public function setUp() { + parent::setUp(); + + $this->mock_transport->onSendDo( + function() { + throw new Zend_Mail_Exception('unable to deliver mail'); + }); + + + $this->postDispatch('auth/register', + ['login' => 'mario', + 'mail' => 'mario@afi-sa.fr', + 'mail2' => 'mario@afi-sa.fr', + 'mdp' => 'secret', + 'mdp2' => 'secret', + 'captcha' => ['id' => '1234', + 'input' => '1234']]); + } + + /** @test */ + public function pageShouldDisplayErrorUnableToDeliverMail() { + $this->assertXPathContentContains('//p[@class="error"]', 'unable to deliver mail'); + } +} + + + class AuthControllerNobodyLoggedRegisterPostWrongDataTest extends AuthControllerNobodyLoggedTestCase { public function setUp() {