diff --git a/VERSIONS_HOTLINE/186186 b/VERSIONS_HOTLINE/186186 new file mode 100644 index 0000000000000000000000000000000000000000..ad4b6ca5c7c08311b4ff5895c3c44858ffd3ac3a --- /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 741e2c9c79f45d9bb5d6a1ed4c070520416c6b27..545bd265f7fe8b194090bdd6c40527e27205f8c3 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 8344ef568e77c85a62a8c1e03a4a38d2c60a3dc2..6487f070651101cee499e277fc8ff264f76e42e4 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();