From a1800506228530040859e8cbc29e2b5abf3f3500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 2 Jul 2025 12:39:20 +0200 Subject: [PATCH] Add exports permissions when loading fixtures --- .../DataFixtures/ORM/LoadUsers.php | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php index 3afdefbab..e71c662b3 100644 --- a/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php +++ b/src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php @@ -11,7 +11,10 @@ declare(strict_types=1); namespace Chill\MainBundle\DataFixtures\ORM; +use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Entity\GroupCenter; +use Chill\MainBundle\Entity\PermissionsGroup; +use Chill\MainBundle\Entity\RoleScope; use Chill\MainBundle\Entity\User; use Doctrine\Common\DataFixtures\AbstractFixture; use Doctrine\Common\DataFixtures\OrderedFixtureInterface; @@ -62,6 +65,15 @@ class LoadUsers extends AbstractFixture implements ContainerAwareInterface, Orde public function load(ObjectManager $manager): void { + $roleScope = new RoleScope(); + $roleScope->setRole('CHILL_MAIN_COMPOSE_EXPORT'); + $permissionGroup = new PermissionsGroup(); + $permissionGroup->setName('export'); + $permissionGroup->addRoleScope($roleScope); + + $manager->persist($roleScope); + $manager->persist($permissionGroup); + foreach (self::$refs as $username => $params) { $user = new User(); @@ -81,7 +93,14 @@ class LoadUsers extends AbstractFixture implements ContainerAwareInterface, Orde ->setEmail(sprintf('%s@chill.social', \str_replace(' ', '', (string) $username))); foreach ($params['groupCenterRefs'] as $groupCenterRef) { - $user->addGroupCenter($this->getReference($groupCenterRef, GroupCenter::class)); + $user->addGroupCenter($gc = $this->getReference($groupCenterRef, GroupCenter::class)); + + $exportGroupCenter = new GroupCenter(); + $exportGroupCenter->setPermissionsGroup($permissionGroup); + $exportGroupCenter->setCenter($gc->getCenter()); + $manager->persist($exportGroupCenter); + + $user->addGroupCenter($exportGroupCenter); } echo 'Creating user '.$username."... \n";