Skip to content

Commit

Permalink
Merge pull request #18478 from nextcloud/fix/direct-editing-invalid-e…
Browse files Browse the repository at this point in the history
…ditor-id

Do not generate tokens for editor IDs that do not exist
  • Loading branch information
rullzer committed Dec 22, 2019
2 parents 3af63f1 + 0ddb9c0 commit 04031f6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
6 changes: 3 additions & 3 deletions apps/files/lib/Controller/DirectEditingController.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public function create(string $path, string $editorId, string $creatorId, string
]);
} catch (Exception $e) {
$this->logger->logException($e, ['message' => 'Exception when creating a new file through direct editing']);
return new DataResponse('Failed to create file', Http::STATUS_FORBIDDEN);
return new DataResponse('Failed to create file: ' . $e->getMessage(), Http::STATUS_FORBIDDEN);
}
}

Expand All @@ -106,7 +106,7 @@ public function open(string $path, string $editorId = null): DataResponse {
]);
} catch (Exception $e) {
$this->logger->logException($e, ['message' => 'Exception when opening a file through direct editing']);
return new DataResponse('Failed to open file', Http::STATUS_FORBIDDEN);
return new DataResponse('Failed to open file: ' . $e->getMessage(), Http::STATUS_FORBIDDEN);
}
}

Expand All @@ -122,7 +122,7 @@ public function templates(string $editorId, string $creatorId): DataResponse {
return new DataResponse($this->directEditingManager->getTemplates($editorId, $creatorId));
} catch (Exception $e) {
$this->logger->logException($e);
return new DataResponse('Failed to open file', Http::STATUS_INTERNAL_SERVER_ERROR);
return new DataResponse('Failed to obtain template list: ' . $e->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
}
5 changes: 5 additions & 0 deletions lib/private/DirectEditing/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
use OCP\L10N\IFactory;
use OCP\Security\ISecureRandom;
use OCP\Share\IShare;
use function array_key_exists;
use function in_array;

class Manager implements IManager {

Expand Down Expand Up @@ -140,6 +142,9 @@ public function open(string $filePath, string $editorId = null): string {
if ($editorId === null) {
$editorId = $this->findEditorForFile($file);
}
if (!array_key_exists($editorId, $this->editors)) {
throw new \RuntimeException("Editor $editorId is unknown");
}

return $this->createToken($editorId, $file, $filePath);
}
Expand Down

0 comments on commit 04031f6

Please sign in to comment.