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();
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * @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);
 }
Ejemplo n.º 4
0
 /**
  * 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');
 }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 8
0
 /**
  * @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);
     //}
 }
Ejemplo n.º 9
0
 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);
 }