WIP make oo encrypted

This commit is contained in:
ansuz 2018-03-05 14:05:53 +01:00
parent ee4d12bd57
commit 978b6b95df
3 changed files with 94 additions and 84 deletions

View File

@ -66,12 +66,17 @@ define([
config.onRemote(); config.onRemote();
} }
var getContent = function () { var getContent = APP.getContent = function () {
APP.ed = window.frames[0].frames[0].editor;
try { try {
return window.frames[0].frames[0].editor.asc_nativeGetFile(); return window.frames[0].frames[0].editor.asc_nativeGetFile();
} catch (e) { return null; } } catch (e) { return null; }
}; };
var setContent = APP.setContent = function (content) {
};
var saveDocument = APP.saveDocument = function () { var saveDocument = APP.saveDocument = function () {
var defaultName = "text.oot"; var defaultName = "text.oot";
UI.prompt(Messages.exportPrompt, defaultName, function (filename) { UI.prompt(Messages.exportPrompt, defaultName, function (filename) {

View File

@ -9205,6 +9205,7 @@ function saveWithParts(fSendCommand, fCallback, fCallbackRequest, oAdditionalDat
} }
function loadFileContent(url, callback) { function loadFileContent(url, callback) {
console.error(url);
asc_ajax({ asc_ajax({
url: url, url: url,
dataType: "text", dataType: "text",
@ -9227,86 +9228,90 @@ function getImageFromChanges (name) {
} }
return null; return null;
} }
function openFileCommand(binUrl, changesUrl, Signature, callback) { function openFileCommand(binUrl, changesUrl, Signature, callback) {
var bError = false, oResult = new OpenFileResult(), bEndLoadFile = false, bEndLoadChanges = false; var bError = false, oResult = new OpenFileResult(), bEndLoadFile = false, bEndLoadChanges = false;
var onEndOpen = function() { var onEndOpen = function() {
if (bEndLoadFile && bEndLoadChanges) { console.error("this is where we should decrypt");
if (callback) { if (bEndLoadFile && bEndLoadChanges) {
callback(bError, oResult); if (callback) {
} callback(bError, oResult);
} }
}; }
var sFileUrl = binUrl; };
sFileUrl = sFileUrl.replace(/\\/g, "/"); var sFileUrl = binUrl;
sFileUrl = sFileUrl.replace(/\\/g, "/");
if (!window['IS_NATIVE_EDITOR']) {
asc_ajax({ if (!window['IS_NATIVE_EDITOR']) {
url: sFileUrl, asc_ajax({
dataType: "text", url: sFileUrl,
success: function(result) { dataType: "text",
//получаем url к папке с файлом success: function(result) {
var url; //получаем url к папке с файлом
var nIndex = sFileUrl.lastIndexOf("/"); var url;
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl; var nIndex = sFileUrl.lastIndexOf("/");
if (0 < result.length) { url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
oResult.bSerFormat = Signature === result.substring(0, Signature.length); if (0 < result.length) {
oResult.data = result; oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.url = url; oResult.data = result;
} else { oResult.url = url;
bError = true; } else {
} bError = true;
bEndLoadFile = true; }
onEndOpen(); bEndLoadFile = true;
}, onEndOpen();
error: function() { console.error(oResult); // XXX
bEndLoadFile = true; },
bError = true; error: function() {
onEndOpen(); bEndLoadFile = true;
} bError = true;
}); onEndOpen();
} }
});
if (null != changesUrl) { }
getJSZipUtils().getBinaryContent(changesUrl, function(err, data) {
bEndLoadChanges = true; if (null != changesUrl) {
if (err) { console.error("null changesUrl"); // XXX
bError = true; getJSZipUtils().getBinaryContent(changesUrl, function(err, data) {
onEndOpen(); bEndLoadChanges = true;
return; if (err) {
} bError = true;
onEndOpen();
oZipChanges = new (require('jszip'))(data); return;
oResult.changes = []; }
for (var i in oZipChanges.files) {
if (i.endsWith('.json')) { oZipChanges = new (require('jszip'))(data);
// Заглушка на имя файла (стоило его начинать с цифры) oResult.changes = [];
oResult.changes[parseInt(i.slice('changes'.length))] = JSON.parse(oZipChanges.files[i].asText()); for (var i in oZipChanges.files) {
} if (i.endsWith('.json')) {
} // Заглушка на имя файла (стоило его начинать с цифры)
onEndOpen(); oResult.changes[parseInt(i.slice('changes'.length))] =
}); JSON.parse(oZipChanges.files[i].asText());
} else { }
bEndLoadChanges = true; }
} onEndOpen();
});
if (window['IS_NATIVE_EDITOR']) { } else {
var result = window["native"]["openFileCommand"](sFileUrl, changesUrl, Signature); bEndLoadChanges = true;
}
var url;
var nIndex = sFileUrl.lastIndexOf("/"); if (window['IS_NATIVE_EDITOR']) {
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl; console.error("is native editor");
if (0 < result.length) { var result = window["native"]["openFileCommand"](sFileUrl, changesUrl, Signature);
oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result; var url;
oResult.url = url; var nIndex = sFileUrl.lastIndexOf("/");
} else { url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
bError = true; if (0 < result.length) {
} oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result;
bEndLoadFile = true; oResult.url = url;
onEndOpen(); } else {
} bError = true;
} }
bEndLoadFile = true;
onEndOpen();
}
}
function sendCommand(editor, fCallback, rdata, dataContainer) { function sendCommand(editor, fCallback, rdata, dataContainer) {
//json не должен превышать размера 2097152, иначе при его чтении будет exception //json не должен превышать размера 2097152, иначе при его чтении будет exception
var docConnectionId = editor.CoAuthoringApi.getDocId(); var docConnectionId = editor.CoAuthoringApi.getDocId();

View File

@ -2,7 +2,7 @@
window.config = { window.config = {
"document": { "document": {
"fileType": "xlsx", "fileType": "xlsx",
"key": "Khirz6zTPdfd7", "key": "fresh", // "Khirz6zTPdfd7",
"title": "test.xlsx", "title": "test.xlsx",
"url": "/onlyoffice/test.xlsx" "url": "/onlyoffice/test.xlsx"
}, },
@ -15,8 +15,8 @@ window.config = {
} }
}, },
"user": { "user": {
"id": "c0c3bf82-20d7-4663-bf6d-7fa39c598b1d", "id": "", //"c0c3bf82-20d7-4663-bf6d-7fa39c598b1d",
"name": "John Smith" "name": "", //"John Smith"
} }
}, },
"events": { "events": {