From f6f887b753d7536c8b680b360924cd99bc834ecd Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 31 Aug 2021 11:25:36 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=83=A1=E3=83=B3=E3=83=90=E3=83=BC=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/MemberRepository.php | 6 ++++++ .../Tests/Repository/MemberRepositoryTest.php | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/Eccube/Repository/MemberRepository.php b/src/Eccube/Repository/MemberRepository.php index 1e6f9ba704e..2f372b4f575 100644 --- a/src/Eccube/Repository/MemberRepository.php +++ b/src/Eccube/Repository/MemberRepository.php @@ -121,6 +121,12 @@ public function delete($Member) ->execute(); $em = $this->getEntityManager(); + + // ログインしたメンバーの外部参照制約を解除する + // https://github.com/EC-CUBE/ec-cube/issues/5119 + $Member->setCreator(null); + $em->flush(); + $em->remove($Member); $em->flush(); } diff --git a/tests/Eccube/Tests/Repository/MemberRepositoryTest.php b/tests/Eccube/Tests/Repository/MemberRepositoryTest.php index 7b8bba58bd4..ea4483235d3 100644 --- a/tests/Eccube/Tests/Repository/MemberRepositoryTest.php +++ b/tests/Eccube/Tests/Repository/MemberRepositoryTest.php @@ -172,4 +172,18 @@ public function testDeleteWithException() $this->memberRepo->delete($Member1); $this->fail(); } + + /** + * https://github.com/EC-CUBE/ec-cube/issues/5119 + */ + public function testDeleteWithException_SelfForeignKey() + { + $Member1 = $this->createMember(); + $Member1->setCreator($Member1); + $this->entityManager->flush(); + + // 削除できることを確認 + $this->memberRepo->delete($Member1); + self::assertNull($Member1->getId()); + } }