mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Fix the logic of adding a permission group to avoid duplicates being made
This commit is contained in:
parent
0f1604817b
commit
b327f65ef8
@ -12,7 +12,9 @@ declare(strict_types=1);
|
|||||||
namespace Chill\MainBundle\Controller;
|
namespace Chill\MainBundle\Controller;
|
||||||
|
|
||||||
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
use Chill\MainBundle\CRUD\Controller\CRUDController;
|
||||||
|
use Chill\MainBundle\Entity\Center;
|
||||||
use Chill\MainBundle\Entity\GroupCenter;
|
use Chill\MainBundle\Entity\GroupCenter;
|
||||||
|
use Chill\MainBundle\Entity\PermissionsGroup;
|
||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
use Chill\MainBundle\Form\Type\ComposedGroupCenterType;
|
use Chill\MainBundle\Form\Type\ComposedGroupCenterType;
|
||||||
use Chill\MainBundle\Form\UserCurrentLocationType;
|
use Chill\MainBundle\Form\UserCurrentLocationType;
|
||||||
@ -69,13 +71,8 @@ class UserController extends CRUDController
|
|||||||
$selectedCenters = $formData['center'];
|
$selectedCenters = $formData['center'];
|
||||||
|
|
||||||
foreach ($selectedCenters as $center) {
|
foreach ($selectedCenters as $center) {
|
||||||
$groupCenter = new GroupCenter();
|
$groupCenter = $this->getPersistedGroupCenter($center, $formData['permissionsgroup']);
|
||||||
$groupCenter->setCenter($center);
|
|
||||||
$groupCenter->setPermissionsGroup($formData['permissionsgroup']);
|
|
||||||
|
|
||||||
$user->addGroupCenter($groupCenter);
|
$user->addGroupCenter($groupCenter);
|
||||||
|
|
||||||
$em->persist($groupCenter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 === $this->validator->validate($user)->count()) {
|
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();
|
$em = $this->managerRegistry->getManager();
|
||||||
|
|
||||||
$groupCenterManaged = $em->getRepository(GroupCenter::class)
|
$groupCenterManaged = $em->getRepository(GroupCenter::class)
|
||||||
->findOneBy([
|
->findOneBy([
|
||||||
'center' => $groupCenter->getCenter(),
|
'center' => $center,
|
||||||
'permissionsGroup' => $groupCenter->getPermissionsGroup(),
|
'permissionsGroup' => $permissionsGroup,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!$groupCenterManaged) {
|
if (!$groupCenterManaged) {
|
||||||
|
$groupCenter = new GroupCenter();
|
||||||
|
$groupCenter->setCenter($center);
|
||||||
|
$groupCenter->setPermissionsGroup($permissionsGroup);
|
||||||
|
|
||||||
$em->persist($groupCenter);
|
$em->persist($groupCenter);
|
||||||
|
|
||||||
return $groupCenter;
|
return $groupCenter;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user