diff --git a/library/Class/UsersNonValid.php b/library/Class/UsersNonValid.php index 3d09e6ba01cbb78340d3d18e87fc125ba411a065..1cb4852e8d2926e109ae2df74c474695607fee03 100644 --- a/library/Class/UsersNonValid.php +++ b/library/Class/UsersNonValid.php @@ -30,7 +30,10 @@ class UsersNonValidLoader extends Storm_Model_Loader { public function activateForNewsletterBy($key) { if (!$model = Class_UsersNonValid::findFirstBy(['cle' => $key])) return ''; - return $model->activateForNewsletter(); + + $user = $model->activateForNewsletter(); + Class_UsersNonValid::deleteBy(['cle' => $key]); + return $user; } diff --git a/tests/application/modules/opac/controllers/AuthControllerTest.php b/tests/application/modules/opac/controllers/AuthControllerTest.php index 9721ab4510ad4c53c1a2aeff8c1a5c7daa57b97e..12d14923dd7c99594e3c7cba206671440a21800f 100644 --- a/tests/application/modules/opac/controllers/AuthControllerTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerTest.php @@ -1806,6 +1806,13 @@ class AuthControllerNewsletterActiveUserTest extends AuthControllerNoBodyLoggedT 'password' => 'random', 'cle' => '12345678']); + $this->fixture('Class_UsersNonValid', [ + 'id' => 2, + 'login' => 'future@i.am', + 'mail' => 'future@i.am', + 'password' => 'random', + 'cle' => '12345678']); + $this->dispatch('opac/auth/newsletter-active-user/c/12345678/id/1', true); } @@ -1826,6 +1833,12 @@ class AuthControllerNewsletterActiveUserTest extends AuthControllerNoBodyLoggedT public function successMessageShouldBeAsExpected() { $this->assertXPathContentContains('//p', "Vous avez bien été abonné à la newsletter: News of the month avec l'adresse suivante: future@i.am"); } + + + /** @test */ + public function allNonValidUsersShouldBeDeleted() { + $this->assertEmpty(Class_UsersNonValid::findAll()); + } }