/** * @param string $username * * @return User */ public function user($username, $withWorkspace = false) { $user = new User(); $user->setFirstName($username); $user->setLastName($username); $user->setUsername($username); $user->setPassword($username); $user->setMail($username . '@mail.com'); $user->setGuid($username); $this->om->persist($user); if (!$this->userRole) { $this->userRole = $this->role('ROLE_USER'); $this->om->persist($this->userRole); } $user->addRole($this->userRole); if ($withWorkspace) { $workspace = new Workspace(); $workspace->setName($username); $workspace->setCreator($user); $workspace->setCode($username); $workspace->setGuid($username); $this->om->persist($workspace); $user->setPersonalWorkspace($workspace); } return $user; }
public function user($username) { $user = new User(); $user->setFirstName($username); $user->setLastName($username); $user->setUsername($username); $user->setPassword($username); $user->setMail($username . '@mail.com'); $user->setGuid($username); $this->om->persist($user); if (!$this->userRole) { $this->userRole = new Role(); $this->userRole->setName('ROLE_USER'); $this->userRole->setTranslationKey('user'); $this->om->persist($this->userRole); } $user->addRole($this->userRole); $workspace = new Workspace(); $workspace->setName($username); $workspace->setCreator($user); $workspace->setCode($username); $workspace->setGuid($username); $this->om->persist($workspace); $user->setPersonalWorkspace($workspace); $this->om->flush(); return $user; }
/** * @param string $name * * @return Workspace */ public function workspace($name, User $creator) { $workspace = new Workspace(); $workspace->setName($name); $workspace->setCode($name); $workspace->setCreator($creator); $template = new SfFile($this->container->getParameter('claroline.param.default_template')); //optimize this later $this->container->get('claroline.manager.workspace_manager')->create($workspace, $template); return $workspace; }
/** * @param $username * * @return User */ public function user($username) { $user = new User(); $user->setFirstName($username); $user->setLastName($username); $user->setUsername($username); $user->setPassword($username); $user->setMail($username . '@mail.com'); $user->setGuid($username); $this->om->persist($user); $user->addRole($this->userRole); $workspace = new Workspace(); $workspace->setName($username); $workspace->setCreator($user); $workspace->setCode($username); $workspace->setGuid($username); $this->om->persist($workspace); $user->setPersonalWorkspace($workspace); return $user; }
public function user($username) { $user = new User(); $user->setFirstName($username); $user->setLastName($username); $user->setUsername($username); $user->setPassword($username); $user->setMail($username . '@mail.com'); $user->setGuid($username); $user->setPublicUrl($username); $this->om->persist($user); if (!$this->userRole) { $this->userRole = $this->om->getRepository('ClarolineCoreBundle:Role')->findOneByName('ROLE_USER'); } $user->addRole($this->userRole); $workspace = new Workspace(); $workspace->setName($username); $workspace->setCreator($user); $workspace->setCode($username); $workspace->setGuid($username); $this->om->persist($workspace); $user->setPersonalWorkspace($workspace); return $user; }
public function createWorkspaceFromModel(WorkspaceModel $model, User $user, $name, $code, $description, $displayable, $selfRegistration, $selfUnregistration, &$errors = array()) { $workspaceModelManager = $this->container->get('claroline.manager.workspace_model_manager'); $workspace = new Workspace(); $workspace->setName($name); $workspace->setCode($code); $workspace->setDescription($description); $workspace->setDisplayable($displayable); $workspace->setSelfRegistration($selfRegistration); $workspace->setSelfUnregistration($selfUnregistration); $guid = $this->ut->generateGuid(); $workspace->setGuid($guid); $date = new \Datetime(date('d-m-Y H:i')); $workspace->setCreationDate($date->getTimestamp()); $workspace->setCreator($user); $errors = []; $this->createWorkspace($workspace); $workspaceModelManager->addDataFromModel($model, $workspace, $user, $errors); return $workspace; }
/** * Import a workspace list from a csv data. * * @param array $workspaces */ public function importWorkspaces(array $workspaces, $logger = null, $update = false) { $i = 0; $workspaceModelManager = $this->container->get('claroline.manager.workspace_model_manager'); foreach ($workspaces as $workspace) { ++$i; $this->om->startFlushSuite(); $endDate = null; $model = null; $name = $workspace[0]; $code = $workspace[1]; $isVisible = $workspace[2]; $selfRegistration = $workspace[3]; $registrationValidation = $workspace[4]; $selfUnregistration = $workspace[5]; if (isset($workspace[6]) && trim($workspace[6]) !== '') { $user = $this->om->getRepository('ClarolineCoreBundle:User')->findOneByUsername($workspace[6]); } else { $user = $this->container->get('security.context')->getToken()->getUser(); } if (isset($workspace[7])) { $model = $this->om->getRepository('ClarolineCoreBundle:Model\\WorkspaceModel')->findOneByName($workspace[7]); } if (isset($workspace[8])) { $endDate = new \DateTime(); $endDate->setTimestamp($workspace[8]); } if ($update) { $workspace = $this->getOneByCode($code); if (!$workspace) { //if the workspace doesn't exists, just keep going... continue; } if ($logger) { $logger('Updating ' . $code . ' (' . $i . '/' . count($workspaces) . ') ...'); } } else { $workspace = new Workspace(); } $workspace->setName($name); $workspace->setCode($code); $workspace->setDisplayable($isVisible); $workspace->setSelfRegistration($selfRegistration); $workspace->setSelfUnregistration($selfUnregistration); $workspace->setRegistrationValidation($registrationValidation); $workspace->setCreator($user); if ($endDate) { $workspace->setEndDate($endDate); } if (!$update) { if ($logger) { $logger('Creating ' . $code . ' (' . $i . '/' . count($workspaces) . ') ...'); } if ($model) { $guid = $this->ut->generateGuid(); $this->createWorkspace($workspace); $workspace->setGuid($guid); $date = new \Datetime(date('d-m-Y H:i')); $workspace->setCreationDate($date->getTimestamp()); $workspaceModelManager->addDataFromModel($model, $workspace, $user); } else { $template = new File($this->container->getParameter('claroline.param.default_template')); $this->container->get('claroline.manager.transfer_manager')->createWorkspace($workspace, $template, true); } } else { if ($model) { $workspaceModelManager->updateDataFromModel($model, $workspace); } } $this->om->persist($workspace); $logger('UOW: ' . $this->om->getUnitOfWork()->size()); if ($i % 100 === 0) { $this->om->forceFlush(); $user = $this->om->getRepository('ClarolineCoreBundle:User')->find($user->getId()); $this->om->merge($user); $this->om->refresh($user); } } $logger('Final flush...'); $this->om->endFlushSuite(); }
protected function persistActivity($name) { if (!isset($this->defaults['user'])) { $this->defaults['user'] = $this->persistUser('default_user'); } if (!isset($this->defaults['workspace'])) { $workspace = new Workspace(); $workspace->setName('ws-jdoe'); $workspace->setCreator($this->defaults['user']); $workspace->setCode('jdoe-123'); $workspace->setGuid('123'); $this->om->persist($workspace); $this->defaults['workspace'] = $workspace; } if (!isset($this->defaults['activity_type'])) { $type = $this->om->getRepository('ClarolineCoreBundle:Resource\\ResourceType')->findOneByName('activity'); $this->defaults['activity_type'] = $type; } $node = new ResourceNode(); $node->setName($name); $node->setCreator($this->defaults['user']); $node->setResourceType($this->defaults['activity_type']); $node->setWorkspace($this->defaults['workspace']); $node->setGuid($name); $node->setClass('foo'); $activity = new Activity(); $activity->setName($name); $activity->setDescription('desc'); $activity->setResourceNode($node); $this->om->persist($node); $this->om->persist($activity); return $activity; }
protected function execute(InputInterface $input, OutputInterface $output) { $verbosityLevelMap = [LogLevel::NOTICE => OutputInterface::VERBOSITY_NORMAL, LogLevel::INFO => OutputInterface::VERBOSITY_NORMAL, LogLevel::DEBUG => OutputInterface::VERBOSITY_NORMAL]; $consoleLogger = new ConsoleLogger($output, $verbosityLevelMap); $workspaceManager = $this->getContainer()->get('claroline.manager.workspace_manager'); $workspaceManager->setLogger($consoleLogger); $dirPath = $input->getArgument('directory_path'); $username = $input->getArgument('owner_username'); $om = $this->getContainer()->get('claroline.persistence.object_manager'); $total = 0; $iterator = new \DirectoryIterator($dirPath); foreach ($iterator as $pathinfo) { if ($pathinfo->isFile()) { ++$total; } } $i = 0; $output->writeln('<comment> Removing workspaces... </comment>'); foreach ($iterator as $pathinfo) { if ($pathinfo->isFile()) { $code = pathinfo($pathinfo->getFileName(), PATHINFO_FILENAME); $workspace = $om->getRepository('ClarolineCoreBundle:Workspace\\Workspace')->findOneByCode($code); if ($workspace) { $output->writeln("<error> Removing {$workspace->getCode()} </error>"); $this->getContainer()->get('claroline.manager.workspace_manager')->deleteWorkspace($workspace); $om->clear(); } } } foreach ($iterator as $pathinfo) { if ($pathinfo->isFile()) { ++$i; $output->writeln('<comment> Clearing object manager... </comment>'); $om->clear(); $user = $this->getContainer()->get('claroline.manager.user_manager')->getUserByUsername($username); $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->getContainer()->get('security.context')->setToken($token); $workspace = new Workspace(); $workspace->setCreator($user); $file = new File($pathinfo->getPathname()); $workspaceManager->create($workspace, $file); $output->writeln("<comment> Workspace {$i}/{$total} created. </comment>"); } } }
/** * Creates the personal workspace of a user. * * @param \Claroline\CoreBundle\Entity\User $user * @param Model $model */ public function setPersonalWorkspace(User $user, $model = null) { $locale = $this->platformConfigHandler->getParameter('locale_language'); $this->translator->setLocale($locale); $created = $this->workspaceManager->getWorkspaceByCode($user->getUsername()); if (count($created) > 0) { $code = $user->getUsername() . '~' . uniqid(); } else { $code = $user->getUsername(); } $personalWorkspaceName = $this->translator->trans('personal_workspace', [], 'platform') . ' - ' . $user->getUsername(); if (!$model) { $workspace = new Workspace(); $workspace->setName($personalWorkspaceName); $workspace->setCode($code); $workspace->setCreator($user); $template = new File($this->personalWsTemplateFile); $workspace = $this->transferManager->createWorkspace($workspace, $template, true); } else { $workspace = $this->workspaceManager->createWorkspaceFromModel($model, $user, $personalWorkspaceName, $user->getUsername(), '', false, false, false); } //add "my public documents" folder $resourceManager = $this->container->get('claroline.manager.resource_manager'); $resourceManager->addPublicFileDirectory($workspace); $workspace->setIsPersonal(true); $user->setPersonalWorkspace($workspace); $this->objectManager->persist($user); $this->objectManager->flush(); }
private function createActivity($name) { $user = new User(); $user->setFirstName('John'); $user->setLastName('Doe'); $user->setUsername('jdoe'); $user->setMail('*****@*****.**'); $user->setPassword('123'); $workspace = new Workspace(); $workspace->setName('w1'); $workspace->setCode('abc'); $workspace->setGuid('abc123'); $workspace->setCreator($user); $type = new ResourceType(); $type->setName('activity'); $node = new ResourceNode(); $node->setName($name); $node->setClass('FooClass'); $node->setCreator($user); $node->setResourceType($type); $node->setWorkspace($workspace); $activity = new Activity(); $activity->setResourceNode($node); $activity->setDescription('activity...'); $this->om->persist($user); $this->om->persist($workspace); $this->om->persist($type); $this->om->persist($node); $this->om->persist($activity); return $activity; }
public function generateWorkspace(Course $course, CourseSession $session) { $user = $this->tokenStorage->getToken()->getUser(); $model = $course->getWorkspaceModel(); $description = $course->getDescription(); $displayable = false; $selfRegistration = false; $selfUnregistration = false; $registrationValidation = false; $name = $course->getTitle() . ' [' . $session->getName() . ']'; $code = $this->generateWorkspaceCode($course->getCode()); if (is_null($model)) { $template = new File($this->defaultTemplate); $workspace = new Workspace(); $workspace->setCreator($user); $workspace->setName($name); $workspace->setCode($code); $workspace->setDisplayable($displayable); $workspace->setSelfRegistration($selfRegistration); $workspace->setSelfUnregistration($selfUnregistration); $workspace->setRegistrationValidation($registrationValidation); $workspace->setDescription($description); $workspace = $this->workspaceManager->create($workspace, $template); } else { $workspace = $this->workspaceManager->createWorkspaceFromModel($model, $user, $name, $code, $description, $displayable, $selfRegistration, $selfUnregistration); } $workspace->setWorkspaceType(0); $startDate = $session->getStartDate(); $endDate = $session->getEndDate(); if (!is_null($startDate)) { $workspace->setStartDate($startDate); } if (!is_null($endDate)) { $workspace->setEndDate($endDate); } $this->workspaceManager->editWorkspace($workspace); return $workspace; }