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; }
/** * @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; }