diff --git a/src/Controller/Back/PartnerController.php b/src/Controller/Back/PartnerController.php index c25ed2e0a..3c88eda35 100755 --- a/src/Controller/Back/PartnerController.php +++ b/src/Controller/Back/PartnerController.php @@ -284,7 +284,6 @@ public function delete( if ($user->getUserPartners()->count() > 1) { foreach ($user->getUserPartners() as $userPartner) { if ($userPartner->getPartner()->getId() === $partner->getId()) { - $user->removeUserPartner($userPartner); $entityManager->remove($userPartner); break; } @@ -637,7 +636,6 @@ public function deleteUser( if ($user->getUserPartners()->count() > 1) { foreach ($user->getUserPartners() as $userPartner) { if ($userPartner->getPartner()->getId() === $partner->getId()) { - $user->removeUserPartner($userPartner); $userManager->remove($userPartner); break; } diff --git a/src/EventListener/EntityHistoryListener.php b/src/EventListener/EntityHistoryListener.php index f921d20b1..d957b7a7b 100644 --- a/src/EventListener/EntityHistoryListener.php +++ b/src/EventListener/EntityHistoryListener.php @@ -108,7 +108,6 @@ protected function processEntity(LifecycleEventArgs $eventArgs, HistoryEntryEven if (in_array($event, [HistoryEntryEvent::UPDATE, HistoryEntryEvent::DELETE]) && empty($changes)) { return; } - $this->saveEntityHistory($event, $entity, $changes); } diff --git a/tests/Functional/Controller/PartnerControllerTest.php b/tests/Functional/Controller/PartnerControllerTest.php index 9f5edf0bd..174e6a5a5 100644 --- a/tests/Functional/Controller/PartnerControllerTest.php +++ b/tests/Functional/Controller/PartnerControllerTest.php @@ -107,7 +107,7 @@ public function testPartnerEditFormSubmit(): void public function testDeletePartner() { /** @var Partner $partner */ - $partner = $this->partnerRepository->findOneBy(['nom' => 'Partenaire 13-03']); + $partner = $this->partnerRepository->findOneBy(['nom' => 'Partenaire 13-01']); $partnerUsers = $partner->getUsers(); $mailBeforArchive = $partner->getEmail(); @@ -125,8 +125,13 @@ public function testDeletePartner() $this->assertTrue($partner->getIsArchive()); $this->assertStringStartsWith($mailBeforArchive.User::SUFFIXE_ARCHIVED, $partner->getEmail()); foreach ($partnerUsers as $user) { - $this->assertEquals(User::STATUS_ARCHIVE, $user->getStatut()); - $this->assertStringContainsString(User::SUFFIXE_ARCHIVED, $user->getEmail()); + if ('admin-partenaire-multi-ter-13-01@histologe.fr' === $user->getEmail()) { + $this->assertEquals(User::STATUS_ACTIVE, $user->getStatut()); + $this->assertCount(1, $user->getPartners()); + } else { + $this->assertEquals(User::STATUS_ARCHIVE, $user->getStatut()); + $this->assertStringContainsString(User::SUFFIXE_ARCHIVED, $user->getEmail()); + } } } @@ -415,6 +420,22 @@ public function testDeleteUserAccount(): void $this->assertEquals(2, $user->getStatut()); $this->assertStringContainsString(User::SUFFIXE_ARCHIVED, $user->getEmail()); + $this->assertEmailCount(1); + } + + public function testDeleteMultiUserFromPartner(): void + { + $user = $this->userRepository->findOneBy(['email' => 'admin-partenaire-multi-ter-13-01@histologe.fr']); + $userId = $user->getId(); + + $this->client->request('POST', $this->router->generate('back_partner_user_delete', ['id' => $user->getPartners()->first()->getId()]), [ + 'user_id' => $userId, + '_token' => $this->generateCsrfToken($this->client, 'partner_user_delete'), + ]); + + $this->assertEquals(1, $user->getStatut()); + $this->assertEmailCount(1); + $this->assertCount(1, $user->getPartners()); } public function testDeleteAnonymizedUserAccount(): void