/** * {@inheritDoc} */ public function load(ObjectManager $objectManager) { /** @var \Claroline\CoreBundle\Manager\UserManager $userCreator */ $userCreator = $this->container->get('claroline.manager.user_manager'); /** @var \Claroline\CoreBundle\Manager\RoleManager $roleManager */ $roleManager = $this->container->get('claroline.manager.role_manager'); /** @var \Claroline\CoreBundle\Repository\ResourceNodeRepository $resourceRepo */ $resourceRepo = $objectManager->getRepository('ClarolineCoreBundle:Resource\\ResourceNode'); foreach ($this->users as $names => $role) { $namesArray = explode(' ', $names); $firstName = $namesArray[0]; $lastName = isset($namesArray[1]) ? $namesArray[1] : ''; $username = $firstName . ucfirst($lastName); $user = new User(); $user->setAdministrativeCode('UCL-' . $username . '-' . rand(0, 1000)); $user->setFirstName($firstName); $lastName = $lastName == '' ? 'Doe' : $lastName; $user->setLastName($lastName); $user->setUserName($username); $user->setPlainPassword($username); $user->setMail('mail_' . uniqid() . '@claroline.net'); $objectManager->persist($user); $roleManager->associateRole($user, $this->getReference("role/{$role}")); if ($this->withWorkspace) { $userCreator->createUser($user); $this->addReference("workspace/{$names}", $user->getPersonalWorkspace()); $this->addReference("directory/{$names}", $resourceRepo->findWorkspaceRoot($user->getPersonalWorkspace())); } else { $objectManager->persist($user); } $this->addReference("user/{$names}", $user); $objectManager->flush(); } }