aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/Controller/CollaborationResourcesController.php17
-rw-r--r--core/Migrations/Version15000Date20180917092725.php4
2 files changed, 13 insertions, 8 deletions
diff --git a/core/Controller/CollaborationResourcesController.php b/core/Controller/CollaborationResourcesController.php
index 453a6405e56..e9fc7b1ac70 100644
--- a/core/Controller/CollaborationResourcesController.php
+++ b/core/Controller/CollaborationResourcesController.php
@@ -163,27 +163,27 @@ class CollaborationResourcesController extends OCSController {
/**
* @NoAdminRequired
*
- * @param string $baseResourceType
- * @param string $baseResourceId
* @param string $resourceType
* @param string $resourceId
+ * @param string $name
* @return DataResponse
*/
- public function createCollectionOnResource(string $baseResourceType, string $baseResourceId, string $resourceType, string $resourceId): DataResponse {
+ public function createCollectionOnResource(string $resourceType, string $resourceId, string $name): DataResponse {
+ if (!isset($name[0]) || isset($name[64])) {
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+
try {
- $baseResource = $this->manager->getResource($baseResourceType, $baseResourceId);
$resource = $this->manager->getResource($resourceType, $resourceId);
} catch (CollectionException $e) {
return new DataResponse([], Http::STATUS_NOT_FOUND);
}
- if (!$baseResource->canAccess($this->userSession->getUser()) ||
- !$resource->canAccess($this->userSession->getUser())) {
+ if (!$resource->canAccess($this->userSession->getUser())) {
return new DataResponse([], Http::STATUS_NOT_FOUND);
}
- $collection = $this->manager->newCollection();
- $collection->addResource($baseResource);
+ $collection = $this->manager->newCollection($name);
$collection->addResource($resource);
return new DataResponse($this->prepareCollection($collection));
@@ -192,6 +192,7 @@ class CollaborationResourcesController extends OCSController {
protected function prepareCollection(ICollection $collection): array {
return [
'id' => $collection->getId(),
+ 'name' => $collection->getName(),
'resources' => array_map([$this, 'prepareResources'], $collection->getResources()),
];
}
diff --git a/core/Migrations/Version15000Date20180917092725.php b/core/Migrations/Version15000Date20180917092725.php
index 9dbc5efceda..1bcc6382745 100644
--- a/core/Migrations/Version15000Date20180917092725.php
+++ b/core/Migrations/Version15000Date20180917092725.php
@@ -48,6 +48,10 @@ class Version15000Date20180917092725 extends SimpleMigrationStep {
'autoincrement' => true,
'notnull' => true,
]);
+ $table->addColumn('name', Type::STRING, [
+ 'notnull' => true,
+ 'length' => 64,
+ ]);
$table->setPrimaryKey(['id']);
}