From 3ba3f41d9ddbb446ea741fd0bfefb67713348b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ANDRE=20s=C3=A9bastien?= <sandre@afi-sa.fr> Date: Fri, 20 Oct 2023 15:03:07 +0000 Subject: [PATCH] hotline : #186186 : with var at 0 created uers datefin with currenttime - 1 --- VERSIONS_HOTLINE/186186 | 1 + library/Class/User/ILSSubscription.php | 7 +++- .../PortalBorrowersFrontTest.php | 39 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 VERSIONS_HOTLINE/186186 diff --git a/VERSIONS_HOTLINE/186186 b/VERSIONS_HOTLINE/186186 new file mode 100644 index 00000000000..ad4b6ca5c7c --- /dev/null +++ b/VERSIONS_HOTLINE/186186 @@ -0,0 +1 @@ + - correctif #186186 : Abonnés portail : Un abonnement ne sera plus valide avec une PORTAL_BORROWERS_VALIDATION_DELAY = 0. \ No newline at end of file diff --git a/library/Class/User/ILSSubscription.php b/library/Class/User/ILSSubscription.php index 741e2c9c79f..545bd265f7f 100644 --- a/library/Class/User/ILSSubscription.php +++ b/library/Class/User/ILSSubscription.php @@ -193,7 +193,12 @@ class Class_User_ILSSubscription { $this->_user->beAbonnePortail(); $date = new DateTime($this->getTimeSource()->dateYmd()); - $date->modify('+' . $days . ' day'); + + if ($days > 0) + $date->modify('+' . $days . ' day'); + + if ($days <= 0) + $date->modify('-1 day'); $this->_user->setDateFin($date->format('Y-m-d')); return $this; diff --git a/tests/scenarios/PortalBorrowers/PortalBorrowersFrontTest.php b/tests/scenarios/PortalBorrowers/PortalBorrowersFrontTest.php index 8344ef568e7..6487f070651 100644 --- a/tests/scenarios/PortalBorrowers/PortalBorrowersFrontTest.php +++ b/tests/scenarios/PortalBorrowers/PortalBorrowersFrontTest.php @@ -242,6 +242,45 @@ class PortalBorrowersFrontRegisterActivationTest extends PortalBorrowersActivate +/* hotline : https://forge.afi-sa.net/issues/186186 */ +class PortalBorrowersFrontRegisterActivationWithValidationDelayZeroTest + extends PortalBorrowersActivatedTestCase { + + public function setUp() { + parent::setUp(); + + Class_AdminVar::set('PORTAL_BORROWERS_LIBRARIES_IDS', '1'); + Class_AdminVar::set('PORTAL_BORROWERS_VALIDATION_DELAY', '0'); + + $time_source = (new TimeSourceForTest('2022-10-21 10:43:04')); + Class_User_ILSSubscription::setTimeSource($time_source); + + $activation_key = 'zzhz'; + $this->fixture(Class_UsersNonValid::class, + ['id' => 188, + 'login' => 'newuser', + 'password' => 'pass', + 'mail' => 'user@server.io', + 'date' => $time_source->time(), + 'id_site' => '1', + 'civilite' => '1', + 'naissance' => '1977-08-18', + 'cle' => $activation_key]); + + $this->dispatch('/opac/auth/activeuser?c=' . $activation_key); + } + + + /** @test */ + public function createdUserDateFinShouldBeCurrentDayLessOne() { + $this->assertEquals('2022-10-20', + Class_Users::findFirstBy(['login' => 'newuser'])->getDateFin()); + } +} + + + + class PortalBorrowersFrontDisabledRegisterTest extends PortalBorrowersDisabledTestCase { public function setUp() { parent::setUp(); -- GitLab