getParsedBody(); if (!$destinationFolder = \FileManager::getTypedFolder($body['destination'])) { throw new RecordNotFoundException('Could not find destination folder.'); } if (!Authority::canCopyFolder($user = $this->getUser($request), $sourceFolder, $destinationFolder)) { throw new AuthorizationFailedException(); } $folder = \FileManager::copyFolder($sourceFolder, $destinationFolder, $user); if (!$folder instanceof \FolderType) { throw new BadRequestException('Fehler beim Kopieren des Ordners.'); } return $this->redirectToFolder($response, $folder); } /** * @SuppressWarnings(PHPMD.Superglobals) */ private function redirectToFolder(Response $response, \FolderType $folder) { $pathinfo = $this->getSchema($folder)->getSelfSubLink($folder)->getSubHref(); $old = \URLHelper::setBaseURL($GLOBALS['ABSOLUTE_URI_STUDIP']); $url = \URLHelper::getURL($this->container->get('json-api-integration-urlPrefix').$pathinfo, [], true); \URLHelper::setBaseURL($old); return $response->withRedirect($url, 201); } }