protected function execute(InputInterface $input, OutputInterface $output) { $verbosityLevelMap = array(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); $validator = $this->getContainer()->get('validator'); $template = $input->getArgument('archive_path'); $username = $input->getArgument('owner_username'); $code = $input->getArgument('code'); $name = $input->getArgument('name'); $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); $config = Configuration::fromTemplate($template); $config->setWorkspaceName($name); $config->setWorkspaceCode($code); $config->setDisplayable(true); $config->setSelfRegistration(true); $config->setRegistrationValidation(true); $config->setSelfUnregistration(true); $config->setWorkspaceDescription(true); $workspaceManager->create($config, $user); $workspaceManager->importRichText(); }
/** * @View(serializerGroups={"api"}) * @ApiDoc( * description="Create a workspace", * views = {"workspace"}, * input="Claroline\CoreBundle\Form\WorkspaceType" * ) * @ParamConverter("user", class="ClarolineCoreBundle:User", options={"repository_method" = "findForApi"}) */ public function postWorkspaceUserAction(User $user) { $workspaceType = new WorkspaceType($user); $workspaceType->enableApi(); $form = $this->formFactory->create($workspaceType); $form->submit($this->request); //$form->handleRequest($this->request); if ($form->isValid()) { $config = Configuration::fromTemplate($this->templateDir . DIRECTORY_SEPARATOR . 'default.zip'); $config->setWorkspaceName($form->get('name')->getData()); $config->setWorkspaceCode($form->get('code')->getData()); $config->setDisplayable($form->get('displayable')->getData()); $config->setSelfRegistration($form->get('selfRegistration')->getData()); $config->setRegistrationValidation($form->get('registrationValidation')->getData()); $config->setSelfUnregistration($form->get('selfUnregistration')->getData()); $config->setWorkspaceDescription($form->get('description')->getData()); $workspace = $this->workspaceManager->create($config, $user); $workspace->setEndDate($form->get('endDate')->getData()); $workspace->setMaxStorageSize($form->get('maxStorageSize')->getData()); $workspace->setMaxUploadResources($form->get('maxUploadResources')->getData()); $workspace->setMaxUsers($form->get('maxUsers')->getData()); $this->workspaceManager->editWorkspace($workspace); return $workspace; } return $form; }
/** * @EXT\Route( * "/import/submit", * name="claro_workspace_import", * ) * @EXT\Template() * * @param int $page * * @return array */ public function importAction() { $form = $this->formFactory->create(FormFactory::TYPE_WORKSPACE_IMPORT, array()); $form->handleRequest($this->request); if ($form->isValid()) { $template = $form->get('workspace')->getData(); $config = Configuration::fromTemplate($template); $config->setWorkspaceName($form->get('name')->getData()); $config->setWorkspaceCode($form->get('code')->getData()); $config->setDisplayable($form->get('displayable')->getData()); $config->setSelfRegistration($form->get('selfRegistration')->getData()); $config->setRegistrationValidation($form->get('registrationValidation')->getData()); $config->setSelfUnregistration($form->get('selfUnregistration')->getData()); $config->setWorkspaceDescription($form->get('description')->getData()); $this->workspaceManager->create($config, $this->tokenStorage->getToken()->getUser()); $this->workspaceManager->importRichText(); } else { throw new \Exception('Invalid form'); } $route = $this->router->generate('claro_workspace_by_user'); return new RedirectResponse($route); }
/** * 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', array(), 'platform') . ' - ' . $user->getUsername(); if (!$model) { $config = Configuration::fromTemplate($this->personalWsTemplateFile); $config->setWorkspaceName($personalWorkspaceName); $config->setWorkspaceCode($code); $workspace = $this->transfertManager->createWorkspace($config, $user, true); } else { $workspace = $this->workspaceManager->createWorkspaceFromModel($model, $user, $personalWorkspaceName, $user->getUsername(), '', false, false, false, $errors); } //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(); }
/** * @EXT\Route( * "/{workspace}/import/partial/submit", * name="claro_workspace_partial_import_submit" * ) * @EXT\Template("ClarolineCoreBundle:Tool\workspace\parameters:importForm.html.twig") * @param Workspace $workspace * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException * @return Response */ public function importAction(Workspace $workspace) { $this->checkAccess($workspace); $form = $this->container->get('form.factory')->create(new PartialWorkspaceImportType()); $form->handleRequest($this->request); if ($form->isValid()) { $template = $form->get('workspace')->getData(); $config = Configuration::fromTemplate($template); $this->workspaceManager->importInExistingWorkspace($config, $workspace); } return new Response('under construction'); }
public function generateWorkspace(Course $course, CourseSession $session, User $user) { $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)) { $ds = DIRECTORY_SEPARATOR; $config = Configuration::fromTemplate($this->templateDir . $ds . 'default.zip'); $config->setWorkspaceName($name); $config->setWorkspaceCode($code); $config->setDisplayable($displayable); $config->setSelfRegistration($selfRegistration); $config->setSelfUnregistration($selfUnregistration); $config->setRegistrationValidation($registrationValidation); $config->setWorkspaceDescription($description); $workspace = $this->workspaceManager->create($config, $user); } 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; }
/** * @EXT\Route( * "/{workspace}/import/partial/submit", * name="claro_workspace_partial_import_submit" * ) * @EXT\Template("ClarolineCoreBundle:Tool\workspace\parameters:importForm.html.twig") * @param Workspace $workspace * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException * @return Response */ public function importAction(Workspace $workspace) { $this->checkAccess($workspace); $form = $this->container->get('form.factory')->create(new PartialWorkspaceImportType()); $form->handleRequest($this->request); if ($form->isValid()) { $template = $form->get('workspace')->getData(); $config = Configuration::fromTemplate($template); $this->workspaceManager->importInExistingWorkspace($config, $workspace); } $url = $this->router->generate('claro_workspace_edit_form', array('workspace' => $workspace->getId())); return new RedirectResponse($url); }
/** * @EXT\Route( * "/{directory}/import", * name="claro_resource_import", * options={"expose"=true} * ) * @EXT\Template("ClarolineCoreBundle:Resource:importModalForm.html.twig") * * @return \Symfony\Component\HttpFoundation\Response */ public function importAction(ResourceNode $directory) { $form = $this->formFactory->create(new ImportResourcesType()); $form->handleRequest($this->request); /*try {*/ if ($form->isValid()) { $template = $form->get('file')->getData(); $config = Configuration::fromTemplate($template); $user = $this->tokenStorage->getToken()->getUser(); $this->transferManager->importResources($config, $user, $directory); $this->transferManager->importRichText(); return new JsonResponse(array()); } else { return array('form' => $form->createView(), 'directory' => $directory); } /* } catch (\Exception $e) { $errorMsg = $this->translator->trans( 'invalid_file', array(), 'platform' ); $form->addError(new FormError($e->getMessage()));*/ return array('form' => $form->createView(), 'directory' => $directory); //} }
protected function execute(InputInterface $input, OutputInterface $output) { $archive = $this->getContainer()->getParameter('claroline.param.templates_directory') . 'default.zip'; $config = Configuration::fromTemplate($archive); $this->getContainer()->get('claroline.manager.transfert_manager')->import($config); }