[bug] Fix crash with config with undefined permissions

This commit is contained in:
Sergey Konovalov
2022-05-17 11:10:31 +03:00
committed by Sergey Konovalov
parent 9bc3986caa
commit 913b57124f

View File

@ -499,7 +499,7 @@ function sendDataWarning(conn, msg) {
sendData(conn, {type: "warning", message: msg});
}
function sendDataMessage(conn, msg) {
if (false !== conn.permissions.chat) {
if (!conn.permissions || false !== conn.permissions.chat) {
sendData(conn, {type: "message", messages: msg});
} else {
logger.debug("sendDataMessage permissions.chat==false: userId = %s docId = %s", conn.user && conn.user.id, conn.docId);
@ -1867,14 +1867,10 @@ exports.install = function(server, callbackFunction) {
}
return name;
}
function isEditMode(permissions, mode, def) {
if (permissions && mode) {
//as in web-apps/apps/documenteditor/main/app/controller/Main.js
return mode !== 'view' && (permissions.edit !== false || permissions.review === true ||
function isEditMode(permissions, mode) {
//as in web-apps/apps/documenteditor/main/app/controller/Main.js
return (!mode || mode !== 'view') && (!permissions || permissions.edit !== false || permissions.review === true ||
permissions.comment === true || permissions.fillForms === true);
} else {
return def;
}
}
function fillDataFromWopiJwt(decoded, data) {
let res = true;
@ -1934,7 +1930,7 @@ exports.install = function(server, callbackFunction) {
var res = "";
if (!decoded?.document?.key) {
res = "document.key";
} else if (!decoded?.document?.permissions) {
} else if (data.permissions && !decoded?.document?.permissions) {
res = "document.permissions";
} else if (!decoded?.document?.url) {
res = "document.url";
@ -2178,7 +2174,7 @@ exports.install = function(server, callbackFunction) {
idOriginal: curUserIdOriginal,
username: fillUsername(data),
indexUser: curIndexUser,
view: !isEditMode(data.permissions, data.mode, !data.view)
view: !isEditMode(data.permissions, data.mode)
};
conn.isCloseCoAuthoring = data.isCloseCoAuthoring;
conn.isEnterCorrectPassword = data.isEnterCorrectPassword;