From a1e994aba5be8287afe0f721fa34a6b4b074a1f5 Mon Sep 17 00:00:00 2001 From: Sergey Konovalov Date: Sat, 23 Dec 2023 00:41:25 +0300 Subject: [PATCH] [bug] Lowercase fileType param; Fix bug 65653 --- DocService/sources/DocsCoServer.js | 3 +-- DocService/sources/wopiClient.js | 9 +++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/DocService/sources/DocsCoServer.js b/DocService/sources/DocsCoServer.js index 00b5cf33d..bc9f25109 100644 --- a/DocService/sources/DocsCoServer.js +++ b/DocService/sources/DocsCoServer.js @@ -2236,8 +2236,7 @@ exports.install = function(server, callbackFunction) { if (decoded.fileInfo) { let fileInfo = decoded.fileInfo; if (openCmd) { - let fileType = fileInfo.BaseFileName ? fileInfo.BaseFileName.substr(fileInfo.BaseFileName.lastIndexOf('.') + 1) : ""; - openCmd.format = fileInfo.FileExtension ? fileInfo.FileExtension.substr(1) : fileType; + openCmd.format = wopiClient.getFileTypeByInfo(fileInfo); openCmd.title = fileInfo.BreadcrumbDocName || fileInfo.BaseFileName; } let name = fileInfo.IsAnonymousUser ? "" : fileInfo.UserFriendlyName; diff --git a/DocService/sources/wopiClient.js b/DocService/sources/wopiClient.js index 2d1ec3be3..607b2adf8 100644 --- a/DocService/sources/wopiClient.js +++ b/DocService/sources/wopiClient.js @@ -276,6 +276,11 @@ function getWopiUnlockMarker(wopiParams) { function getWopiModifiedMarker(wopiParams, lastModifiedTime) { return JSON.stringify(Object.assign({fileInfo: {LastModifiedTime: lastModifiedTime}}, wopiParams.userAuth)); } +function getFileTypeByInfo(fileInfo) { + let fileType = fileInfo.BaseFileName ? fileInfo.BaseFileName.substr(fileInfo.BaseFileName.lastIndexOf('.') + 1) : ""; + fileType = fileInfo.FileExtension ? fileInfo.FileExtension.substr(1) : fileType; + return fileType.toLowerCase(); +} function getLastModifiedTimeFromCallbacks(callbacks) { for (let i = callbacks.length; i >= 0; --i) { let callback = callbacks[i]; @@ -429,8 +434,7 @@ function getEditorHtml(req, res) { } //save common info if (undefined === lockId) { - let fileType = fileInfo.BaseFileName ? fileInfo.BaseFileName.substr(fileInfo.BaseFileName.lastIndexOf('.') + 1) : ""; - fileType = fileInfo.FileExtension ? fileInfo.FileExtension.substr(1) : fileType; + let fileType = getFileTypeByInfo(fileInfo); lockId = crypto.randomBytes(16).toString('base64'); let commonInfo = JSON.stringify({lockId: lockId, fileInfo: fileInfo}); yield canvasService.commandOpenStartPromise(ctx, docId, utils.getBaseUrlByRequest(ctx, req), commonInfo, fileType); @@ -841,3 +845,4 @@ exports.generateProofOld = generateProofOld; exports.fillStandardHeaders = fillStandardHeaders; exports.getWopiUnlockMarker = getWopiUnlockMarker; exports.getWopiModifiedMarker = getWopiModifiedMarker; +exports.getFileTypeByInfo = getFileTypeByInfo;