From 8c69d3637f451ff4c9391b5342e2ba850419c06d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Fri, 21 Aug 2020 16:03:04 +0200 Subject: Add full path to redirect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Controller/DocumentController.php | 7 ++++--- lib/Service/FederationService.php | 8 ++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/Controller/DocumentController.php b/lib/Controller/DocumentController.php index aa98c239..3f2071db 100644 --- a/lib/Controller/DocumentController.php +++ b/lib/Controller/DocumentController.php @@ -194,9 +194,10 @@ class DocumentController extends Controller { $remoteCollabora = $this->federationService->getRemoteCollaboraURL($remote); if ($remoteCollabora !== '') { $absolute = $item->getParent()->getPath(); - $relative = $folder->getRelativePath($absolute); - $url = '/index.php/apps/files?dir=' . $relative . - '&richdocuments_open=' . $item->getName() . + $relativeFolderPath = $folder->getRelativePath($absolute); + $relativeFilePath = $folder->getRelativePath($item->getPath()); + $url = '/index.php/apps/files/?dir=' . $relativeFolderPath . + '&richdocuments_open=' . $relativeFilePath . '&richdocuments_fileId=' . $fileId . '&richdocuments_remote_access=' . $remote; diff --git a/lib/Service/FederationService.php b/lib/Service/FederationService.php index 665cbe1e..fce2ea74 100644 --- a/lib/Service/FederationService.php +++ b/lib/Service/FederationService.php @@ -60,10 +60,14 @@ class FederationService { } catch (QueryException $e) {} } + /** + * @param $remote + * @return string + * @throws \Exception + */ public function getRemoteCollaboraURL($remote) { if ($this->trustedServers === null || !$this->trustedServers->isTrustedServer($remote)) { - $this->logger->info('Unable to determine collabora URL of remote server ' . $remote . ' - Remote is not a trusted server'); - return ''; + throw new \Exception('Unable to determine collabora URL of remote server ' . $remote . ' - Remote is not a trusted server'); } if ($remoteCollabora = $this->cache->get('richdocuments_remote/' . $remote)) { return $remoteCollabora; -- cgit v1.2.3