From bcc2ec174cfc32c4d8a56afeaead4bba5aa03d99 Mon Sep 17 00:00:00 2001 From: christianbeeznst Date: Tue, 6 Aug 2024 15:25:28 -0500 Subject: [PATCH] Internal: Fix duplicate entry error in session_rel_user table - refs BT#21913 --- src/CoreBundle/Repository/SessionRepository.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/CoreBundle/Repository/SessionRepository.php b/src/CoreBundle/Repository/SessionRepository.php index 4b99057cff9..498225057cf 100644 --- a/src/CoreBundle/Repository/SessionRepository.php +++ b/src/CoreBundle/Repository/SessionRepository.php @@ -219,6 +219,18 @@ public function addUserInCourse(int $relationType, User $user, Course $course, S throw new Exception(sprintf('Cannot handle relationType %s', $relationType)); } + $entityManager = $this->getEntityManager(); + $existingRecord = $entityManager->getRepository(SessionRelUser::class)->findOneBy([ + 'session' => $session, + 'user' => $user, + 'relationType' => $relationType, + ]); + + if ($existingRecord) { + $entityManager->remove($existingRecord); + $entityManager->flush(); + } + switch ($relationType) { case Session::DRH: if ($user->hasRole('ROLE_HR')) { @@ -249,8 +261,12 @@ public function addUserInCourse(int $relationType, User $user, Course $course, S break; } + + $entityManager->persist($session); + $entityManager->flush(); } + /** * @return array */