Fix issues found in code review

This commit is contained in:
Wolfgang Ginolas 2024-03-20 10:13:03 +01:00 committed by wginolas
parent f3ad07aeb6
commit 708a3689f1
4 changed files with 24 additions and 23 deletions

View file

@ -4,6 +4,8 @@
/* globals process */
const { existsSync, readdirSync } = require('node:fs');
const Crypto = require('crypto');
const WriteQueue = require("./write-queue");
const BatchRead = require("./batch-read");
@ -56,6 +58,14 @@ var isRecentVersion = function () {
return false;
};
const getInstalledOOVersions = function() {
if (!existsSync('www/common/onlyoffice/dist')) {
return [];
}
return readdirSync('www/common/onlyoffice/dist');
};
module.exports.create = function (config) {
var httpUnsafeOrigin = canonicalizeOrigin(config.httpUnsafeOrigin);
@ -233,7 +243,9 @@ module.exports.create = function (config) {
sso: config.sso,
enforceMFA: config.enforceMFA,
onlyOffice: config.onlyOffice,
onlyOffice: {
availableVersions: getInstalledOOVersions()
},
// initialized as undefined
bearerSecret: void 0,

View file

@ -4,8 +4,6 @@
"use strict";
const { existsSync, readdirSync } = require('node:fs');
var config;
var configPath = process.env.CRYPTPAD_CONFIG || "../config/config.js";
try {
@ -55,16 +53,4 @@ try {
//console.log("SSO config not found");
}
const getInstalledOOVersions = function() {
if (!existsSync('www/common/onlyoffice/dist')) {
return [];
}
return readdirSync('www/common/onlyoffice/dist');
};
config.onlyOffice = {
availableVersions: getInstalledOOVersions()
};
module.exports = config;

View file

@ -20,13 +20,15 @@ define([
'/customize/pages.js',
'/checkup/checkup-tools.js',
'/customize/application_config.js',
'/common/onlyoffice/current-version.js',
'/components/tweetnacl/nacl-fast.min.js',
'css!/components/components-font-awesome/css/font-awesome.min.css',
'less!/checkup/app-checkup.less',
], function ($, ApiConfig, Assertions, h, Messages, DomReady,
nThen, SFCommonO, Login, Hash, Util, Pinpad,
NetConfig, Block, Pages, Tools, AppConfig) {
NetConfig, Block, Pages, Tools, AppConfig,
OOCurrentVersion) {
window.CHECKUP_MAIN_LOADED = true;
var Assert = Assertions();
@ -421,7 +423,7 @@ define([
});
});
var sheetURL = '/common/onlyoffice/dist/v7/web-apps/apps/spreadsheeteditor/main/index.html';
var sheetURL = `/common/onlyoffice/dist/${OOCurrentVersion.currentVersion}/web-apps/apps/spreadsheeteditor/main/index.html`;
assert(function (cb, msg) {
msg.innerText = "Missing HTTP headers required for .xlsx export from sheets. ";
@ -718,7 +720,7 @@ define([
});
assert(function (cb, msg) { // FIXME possibly superseded by more advanced CSP tests?
var url = '/common/onlyoffice/dist/v7/web-apps/apps/spreadsheeteditor/main/index.html';
var url = `/common/onlyoffice/dist/${OOCurrentVersion.currentVersion}/web-apps/apps/spreadsheeteditor/main/index.html`;
msg.appendChild(CSP_WARNING(url));
deferredPostMessage({
command: 'GET_HEADER',

View file

@ -9,8 +9,7 @@ define([
'/common/requireconfig.js',
'/customize/messages.js',
'jquery',
'/common/pad-types.js',
], function (nThen, ApiConfig, RequireConfig, Messages, $, PadTypes) {
], function (nThen, ApiConfig, RequireConfig, Messages, $) {
var common = {};
var embeddableApps = [
@ -155,11 +154,12 @@ define([
'/customize/application_config.js',
//'/common/test.js',
'/common/userObject.js',
'optional!/api/instance'
'optional!/api/instance',
'/common/pad-types.js',
], waitFor(function (_CpNfOuter, _Cryptpad, _Crypto, _Cryptget, _SFrameChannel,
_SecureIframe, _UnsafeIframe, _OOIframe, _Notifier, _Hash, _Util, _Realtime, _Notify,
_Constants, _Feedback, _LocalStore, _Block, _Cache, _AppConfig, /* _Test,*/ _UserObject,
_Instance) {
_Instance, _PadTypes) {
CpNfOuter = _CpNfOuter;
Cryptpad = _Cryptpad;
Crypto = Utils.Crypto = _Crypto;
@ -181,6 +181,7 @@ define([
Utils.currentPad = currentPad;
Utils.Instance = _Instance;
Utils.Block = _Block;
Utils.PadTypes = _PadTypes;
AppConfig = _AppConfig;
//Test = _Test;
@ -820,7 +821,7 @@ define([
additionalPriv.newSharedFolder = window.CryptPad_newSharedFolder;
}
if (Utils.Constants.criticalApps.indexOf(parsed.type) === -1 &&
!PadTypes.isAvailable(parsed.type)) {
!Utils.PadTypes.isAvailable(parsed.type)) {
additionalPriv.disabledApp = true;
}
if (!Utils.LocalStore.isLoggedIn() &&