diff --git a/src/Bundle/ChillMainBundle/Controller/UserController.php b/src/Bundle/ChillMainBundle/Controller/UserController.php index d65c3a404..66c084e11 100644 --- a/src/Bundle/ChillMainBundle/Controller/UserController.php +++ b/src/Bundle/ChillMainBundle/Controller/UserController.php @@ -12,7 +12,9 @@ declare(strict_types=1); namespace Chill\MainBundle\Controller; use Chill\MainBundle\CRUD\Controller\CRUDController; +use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Entity\GroupCenter; +use Chill\MainBundle\Entity\PermissionsGroup; use Chill\MainBundle\Entity\User; use Chill\MainBundle\Form\Type\ComposedGroupCenterType; use Chill\MainBundle\Form\UserCurrentLocationType; @@ -69,13 +71,8 @@ class UserController extends CRUDController $selectedCenters = $formData['center']; foreach ($selectedCenters as $center) { - $groupCenter = new GroupCenter(); - $groupCenter->setCenter($center); - $groupCenter->setPermissionsGroup($formData['permissionsgroup']); - + $groupCenter = $this->getPersistedGroupCenter($center, $formData['permissionsgroup']); $user->addGroupCenter($groupCenter); - - $em->persist($groupCenter); } if (0 === $this->validator->validate($user)->count()) { @@ -428,17 +425,21 @@ class UserController extends CRUDController } } - private function getPersistedGroupCenter(GroupCenter $groupCenter) + private function getPersistedGroupCenter(Center $center, PermissionsGroup $permissionsGroup) { $em = $this->managerRegistry->getManager(); $groupCenterManaged = $em->getRepository(GroupCenter::class) ->findOneBy([ - 'center' => $groupCenter->getCenter(), - 'permissionsGroup' => $groupCenter->getPermissionsGroup(), + 'center' => $center, + 'permissionsGroup' => $permissionsGroup, ]); if (!$groupCenterManaged) { + $groupCenter = new GroupCenter(); + $groupCenter->setCenter($center); + $groupCenter->setPermissionsGroup($permissionsGroup); + $em->persist($groupCenter); return $groupCenter;