mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
Fix backup/restore issue
This commit is contained in:
parent
dbfec317a1
commit
2ee8487cc2
@ -431,6 +431,14 @@ define([
|
||||
cb(obj);
|
||||
});
|
||||
};
|
||||
common.getAccountObject = function (teamId, cb) {
|
||||
postMessage("GET", {
|
||||
teamId: teamId,
|
||||
key: []
|
||||
}, function (obj) {
|
||||
cb(obj);
|
||||
});
|
||||
};
|
||||
common.getSharedFolder = function (data, cb) {
|
||||
postMessage("GET_SHARED_FOLDER", data, function (obj) {
|
||||
cb(obj);
|
||||
|
||||
@ -23,43 +23,55 @@ define([
|
||||
});
|
||||
});
|
||||
sframeChan.on('Q_SETTINGS_DRIVE_GET', function (d, cb) {
|
||||
if (d !== "full") {
|
||||
Cryptpad.getAccountObject(null, function (obj) {
|
||||
cb(obj);
|
||||
});
|
||||
return;
|
||||
}
|
||||
Cryptpad.getUserObject(null, function (obj) {
|
||||
if (obj.error) { return void cb(obj); }
|
||||
if (d === "full") {
|
||||
// We want shared folders too
|
||||
var result = {
|
||||
uo: obj,
|
||||
sf: {}
|
||||
};
|
||||
if (!obj.drive || !obj.drive.sharedFolders) { return void cb(result); }
|
||||
Utils.nThen(function (waitFor) {
|
||||
Object.keys(obj.drive.sharedFolders).forEach(function (id) {
|
||||
Cryptpad.getSharedFolder({
|
||||
id: id
|
||||
}, waitFor(function (obj) {
|
||||
result.sf[id] = obj;
|
||||
}));
|
||||
});
|
||||
}).nThen(function () {
|
||||
cb(result);
|
||||
// We want shared folders too
|
||||
var result = {
|
||||
uo: obj,
|
||||
sf: {}
|
||||
};
|
||||
if (!obj.drive || !obj.drive.sharedFolders) { return void cb(result); }
|
||||
Utils.nThen(function (waitFor) {
|
||||
Object.keys(obj.drive.sharedFolders).forEach(function (id) {
|
||||
Cryptpad.getSharedFolder({
|
||||
id: id
|
||||
}, waitFor(function (obj) {
|
||||
result.sf[id] = obj;
|
||||
}));
|
||||
});
|
||||
return;
|
||||
}
|
||||
// We want only the user object
|
||||
cb(obj);
|
||||
}).nThen(function () {
|
||||
cb(result);
|
||||
});
|
||||
});
|
||||
});
|
||||
sframeChan.on('Q_SETTINGS_DRIVE_SET', function (data, cb) {
|
||||
if (data && data.uo) { data = data.uo; }
|
||||
var sjson = JSON.stringify(data);
|
||||
require([
|
||||
'/common/cryptget.js',
|
||||
], function (Crypt) {
|
||||
var k = Cryptpad.userHash || Utils.LocalStore.getFSHash();
|
||||
Crypt.put(k, sjson, function (err) {
|
||||
cb(err);
|
||||
const drive = JSON.parse(JSON.stringify(data.drive || ''));
|
||||
const todo = () => {
|
||||
var sjson = JSON.stringify(data);
|
||||
require([
|
||||
'/common/cryptget.js',
|
||||
], function (Crypt) {
|
||||
var k = Cryptpad.userHash || Utils.LocalStore.getFSHash();
|
||||
Crypt.put(k, sjson, function (err) {
|
||||
cb(err);
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
if (Object.keys(data).length === 1 && data.drive) {
|
||||
return Cryptpad.getAccountObject(null, function (obj) {
|
||||
data = JSON.parse(JSON.stringify(obj));
|
||||
data.drive = drive;
|
||||
todo();
|
||||
});
|
||||
}
|
||||
todo();
|
||||
});
|
||||
sframeChan.on('Q_SETTINGS_LOGOUT_PROPERLY', function (data, cb) {
|
||||
Utils.LocalStore.clearLoginToken();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user