mirror of https://github.com/xwiki-labs/cryptpad
add an admin RPC to archive documents
This commit is contained in:
parent
6a1a950883
commit
5749b6fd7b
|
@ -146,6 +146,32 @@ var flushCache = function (Env, Server, cb) {
|
|||
cb(void 0, true);
|
||||
};
|
||||
|
||||
// CryptPad_AsyncStore.rpc.send('ADMIN', ['ARCHIVE_DOCUMENT', documentID], console.log)
|
||||
var archiveDocument = function (Env, Server, cb, data) {
|
||||
var id = Array.isArray(data) && data[1];
|
||||
if (typeof(id) !== 'string' || id.length < 32) { return void cb("EINVAL"); }
|
||||
|
||||
switch (id.length) {
|
||||
case 32:
|
||||
return void Env.msgStore.archiveChannel(id, cb);
|
||||
case 48:
|
||||
return void Env.blobStore.archive.blob(id, cb);
|
||||
default:
|
||||
return void cb("INVALID_ID_LENGTH");
|
||||
}
|
||||
|
||||
// archival for blob proofs isn't automated, but evict-inactive.js will
|
||||
// clean up orpaned blob proofs
|
||||
// Env.blobStore.archive.proof(userSafeKey, blobId, cb)
|
||||
};
|
||||
|
||||
var restoreArchivedDocument = function (Env, Server, cb) {
|
||||
// Env.msgStore.restoreArchivedChannel(channelName, cb)
|
||||
// Env.blobStore.restore.blob(blobId, cb)
|
||||
// Env.blobStore.restore.proof(userSafekey, blobId, cb)
|
||||
|
||||
cb("NOT_IMPLEMENTED");
|
||||
};
|
||||
|
||||
// CryptPad_AsyncStore.rpc.send('ADMIN', ['SET_DEFAULT_STORAGE_LIMIT', 1024 * 1024 * 1024 /* 1GB */], console.log)
|
||||
var setDefaultStorageLimit = function (Env, Server, cb, data) {
|
||||
|
@ -174,6 +200,9 @@ var commands = {
|
|||
GET_FILE_DESCRIPTOR_LIMIT: getFileDescriptorLimit,
|
||||
SET_DEFAULT_STORAGE_LIMIT: setDefaultStorageLimit,
|
||||
GET_CACHE_STATS: getCacheStats,
|
||||
|
||||
ARCHIVE_DOCUMENT: archiveDocument,
|
||||
RESTORE_ARCHIVED_DOCUMENT: restoreArchivedDocument,
|
||||
};
|
||||
|
||||
Admin.command = function (Env, safeKey, data, _cb, Server) {
|
||||
|
|
Loading…
Reference in New Issue