allow expert admins to get and clear cached channel indices

pull/1/head
ansuz 4 years ago
parent b4adf65dc8
commit 488ec93ece

@ -175,6 +175,24 @@ var restoreArchivedDocument = function (Env, Server, cb) {
cb("NOT_IMPLEMENTED"); cb("NOT_IMPLEMENTED");
}; };
// CryptPad_AsyncStore.rpc.send('ADMIN', ['CLEAR_CHANNEL_INDEX', documentID], console.log)
var clearChannelIndex = function (Env, Server, cb, data) {
var id = Array.isArray(data) && data[1];
if (typeof(id) !== 'string' || id.length < 32) { return void cb("EINVAL"); }
delete Env.channel_cache[id];
cb();
};
// CryptPad_AsyncStore.rpc.send('ADMIN', ['GET_CHANNEL_INDEX', documentID], console.log)
var getChannelIndex = function (Env, Server, cb, data) {
var id = Array.isArray(data) && data[1];
if (typeof(id) !== 'string' || id.length < 32) { return void cb("EINVAL"); }
var index = Util.find(Env, ['channel_cache', id]);
if (!index) { return void cb("ENOENT"); }
cb(void 0, index);
};
// CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['RESTRICT_REGISTRATION', [true]]], console.log) // CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['RESTRICT_REGISTRATION', [true]]], console.log)
var adminDecree = function (Env, Server, cb, data, unsafeKey) { var adminDecree = function (Env, Server, cb, data, unsafeKey) {
var value = data[1]; var value = data[1];
@ -269,6 +287,9 @@ var commands = {
ARCHIVE_DOCUMENT: archiveDocument, ARCHIVE_DOCUMENT: archiveDocument,
RESTORE_ARCHIVED_DOCUMENT: restoreArchivedDocument, RESTORE_ARCHIVED_DOCUMENT: restoreArchivedDocument,
CLEAR_CHANNEL_INDEX: clearChannelIndex,
GET_CHANNEL_INDEX: getChannelIndex,
ADMIN_DECREE: adminDecree, ADMIN_DECREE: adminDecree,
INSTANCE_STATUS: instanceStatus, INSTANCE_STATUS: instanceStatus,
GET_LIMITS: getLimits, GET_LIMITS: getLimits,

Loading…
Cancel
Save