From a692eabf3b7c8f53367fae632e0ee6b0fcb584a6 Mon Sep 17 00:00:00 2001 From: Anton SHEPILOV Date: Sun, 25 Aug 2024 22:26:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9BFixed=20document=20identifier=20for?= =?UTF-8?q?=20OnlyOffice=20in=20view=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/controllers/index.controller.ts | 1 + .../src/controllers/onlyoffice.controller.ts | 17 +++-------------- .../onlyoffice-connector/src/views/index.eta | 2 +- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/tdrive/connectors/onlyoffice-connector/src/controllers/index.controller.ts b/tdrive/connectors/onlyoffice-connector/src/controllers/index.controller.ts index 248b9ba6..fd05b2af 100644 --- a/tdrive/connectors/onlyoffice-connector/src/controllers/index.controller.ts +++ b/tdrive/connectors/onlyoffice-connector/src/controllers/index.controller.ts @@ -144,6 +144,7 @@ class IndexController { res.render('index', { ...initResponse, + docId: preview ? file_id : editing_session_key, server: Utils.joinURL([SERVER_ORIGIN, SERVER_PREFIX]), token: inPageToken, }); diff --git a/tdrive/connectors/onlyoffice-connector/src/controllers/onlyoffice.controller.ts b/tdrive/connectors/onlyoffice-connector/src/controllers/onlyoffice.controller.ts index 9c4aec79..7bce33f6 100644 --- a/tdrive/connectors/onlyoffice-connector/src/controllers/onlyoffice.controller.ts +++ b/tdrive/connectors/onlyoffice-connector/src/controllers/onlyoffice.controller.ts @@ -28,26 +28,15 @@ class OnlyOfficeController { const { token } = req.query; const officeTokenPayload = jwt.verify(token, CREDENTIALS_SECRET) as OfficeToken; - const { company_id, drive_file_id, file_id, in_page_token, editing_session_key } = officeTokenPayload; - let fileId = file_id; + const { company_id, file_id, in_page_token } = officeTokenPayload; // check token is an in_page_token if (!in_page_token) throw new Error('Invalid token, must be a in_page_token'); - if (drive_file_id) { - //Get the drive file - const driveFile = await driveService.getByEditingSessionKey({ - company_id, - editing_session_key, - }); - if (driveFile) { - fileId = driveFile?.item?.last_version_cache?.file_metadata?.external_id; - } - } - + if (!file_id) throw new Error(`File id is missing in the last version cache for ${JSON.stringify(file_id)}`); const file = await fileService.download({ company_id, - file_id: fileId, + file_id: file_id, }); file.pipe(res); diff --git a/tdrive/connectors/onlyoffice-connector/src/views/index.eta b/tdrive/connectors/onlyoffice-connector/src/views/index.eta index 2376cfae..6d9b9ec0 100644 --- a/tdrive/connectors/onlyoffice-connector/src/views/index.eta +++ b/tdrive/connectors/onlyoffice-connector/src/views/index.eta @@ -26,7 +26,7 @@ title: "<%= it.filename %>", url: `${window.baseURL}read?file_id=<%= it.file_id %>&company_id=<%= it.company_id %>&token=<%= it.token %>`, fileType: "<%= it.file_type %>", - key: "<%= it.file_version_id %>", + key: "<%= it.docId %>", token: "<%= it.file_id %>", permissions: { download: true,