public function editSharedWorkspaceRemoteName(array $workspace, $workspaceName)
 {
     $workspaceType = new WorkspaceType();
     $workspaceType->enableApi();
     $form = $this->formFactory->create($workspaceType);
     $expDate = \DateTime::createFromFormat(\DateTime::ATOM, $workspace['endDate']);
     $payload = $this->apiManager->formEncode($workspace, $form, $workspaceType);
     $payload['workspace_form[name]'] = $workspaceName;
     $payload['workspace_form[endDate]'] = $expDate->format('d-m-Y');
     $url = 'api/workspaces/' . $workspace['id'] . '/users/' . $workspace['creator']['username'] . '.json';
     $serverOutput = $this->apiManager->url($this->targetFriend, $url, $payload, 'PUT');
     $datas = json_decode($serverOutput, true);
     if (is_null($datas) || isset($datas['errors'])) {
         throw new \Exception($serverOutput);
     }
     return $datas;
 }
示例#2
0
 /**
  * @View(serializerGroups={"api"})
  * @ApiDoc(
  *     description="Update a workspace",
  *     views = {"workspace"},
  *     input="Claroline\CoreBundle\Form\WorkspaceType"
  * )
  * @ParamConverter("user", class="ClarolineCoreBundle:User", options={"repository_method" = "findForApi"})
  */
 public function putWorkspaceUserAction(Workspace $workspace, User $user)
 {
     $workspaceType = new WorkspaceType($user);
     $workspaceType->enableApi();
     $form = $this->formFactory->create($workspaceType, $workspace);
     $form->submit($this->request);
     if ($form->isValid()) {
         $workspace->setName($form->get('name')->getData());
         $workspace->setCode($form->get('code')->getData());
         $workspace->setDisplayable($form->get('displayable')->getData());
         $workspace->setSelfRegistration($form->get('selfRegistration')->getData());
         $workspace->setRegistrationValidation($form->get('registrationValidation')->getData());
         $workspace->setSelfUnregistration($form->get('selfUnregistration')->getData());
         $workspace->setDescription($form->get('description')->getData());
         $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;
 }
 /**
  * @View(serializerGroups={"api_workspace"})
  * @ApiDoc(
  *     description="Update a workspace",
  *     views = {"workspace"},
  *     input="Claroline\CoreBundle\Form\WorkspaceType"
  * )
  * @Put("workspace/{workspace}", name="put_workspace", options={ "method_prefix" = false })
  * @SEC\PreAuthorize("canOpenAdminTool('workspace_management')")
  */
 public function putWorkspaceAction(Workspace $workspace)
 {
     $workspaceType = new WorkspaceType();
     $workspaceType->enableApi();
     $form = $this->formFactory->create($workspaceType, $workspace);
     $form->submit($this->request);
     if ($form->isValid()) {
         $this->workspaceManager->editWorkspace($workspace);
         return $workspace;
     }
     return $form;
 }