[ 'groupCenterRefs' => ['centerA_permission_group_social'], ], 'center a_administrative' => [ 'groupCenterRefs' => ['centerA_permission_group_administrative'], ], 'center a_direction' => [ 'groupCenterRefs' => ['centerA_permission_group_direction'], ], 'center b_social' => [ 'groupCenterRefs' => ['centerB_permission_group_social'], ], 'center b_administrative' => [ 'groupCenterRefs' => ['centerB_permission_group_administrative'], ], 'center b_direction' => [ 'groupCenterRefs' => ['centerB_permission_group_direction'], ], 'multi_center' => [ 'groupCenterRefs' => ['centerA_permission_group_social', 'centerB_permission_group_social', ], ], ]; private ?ContainerInterface $container = null; public function getOrder(): int { return 1000; } public function load(ObjectManager $manager): void { foreach (self::$refs as $username => $params) { $user = new User(); $defaultEncoder = new \Symfony\Component\PasswordHasher\Hasher\MessageDigestPasswordHasher('sha512', true, 5000); $encoderFactory = new EncoderFactory([ User::class => $defaultEncoder, ]); $user ->setUsername($username) ->setPassword( $encoderFactory ->getEncoder($user) ->encodePassword('password', $user->getSalt()) ) ->setEmail(sprintf('%s@chill.social', \str_replace(' ', '', (string) $username))); foreach ($params['groupCenterRefs'] as $groupCenterRef) { $user->addGroupCenter($this->getReference($groupCenterRef, GroupCenter::class)); } echo 'Creating user '.$username."... \n"; $manager->persist($user); $this->addReference($username, $user); } $manager->flush(); } public function setContainer(?ContainerInterface $container = null) { if (null === $container) { throw new \LogicException('$container should not be null'); } $this->container = $container; } }