diff --git a/lib/commands/admin-rpc.js b/lib/commands/admin-rpc.js index a05b177a2..7200ce49b 100644 --- a/lib/commands/admin-rpc.js +++ b/lib/commands/admin-rpc.js @@ -779,12 +779,14 @@ var commands = { // addFirstAdmin is an anon_rpc command Admin.addFirstAdmin = function (Env, data, cb) { + if (!Env.installToken) { return void cb('EINVAL'); } var token = data.token; + if (!token || !data.edPublic) { return void cb('MISSING_ARGS'); } + if (token.length !== 64 || data.edPublic.length !== 44) { return void cb('INVALID_ARGS'); } if (token !== Env.installToken) { return void cb('FORBIDDEN'); } if (Array.isArray(Env.admins) && Env.admins.length) { return void cb('EEXISTS'); } var key = data.edPublic; - if (token.length !== 64 || data.edPublic.length !== 44) { return void cb('INVALID_ARGS'); } adminDecree(Env, null, function (err) { if (err) { return void cb(err); } diff --git a/lib/env.js b/lib/env.js index 8824c347f..f61d48f9c 100644 --- a/lib/env.js +++ b/lib/env.js @@ -167,6 +167,7 @@ module.exports.create = function (config) { limits: {}, admins: [], + installToken: undefined, WARN: function (e, output) { // TODO deprecate this if (!Env.Log) { return; } if (e && output) { diff --git a/scripts/clear.js b/scripts/clear.js index f9ca46533..8bfadd964 100644 --- a/scripts/clear.js +++ b/scripts/clear.js @@ -1,18 +1,12 @@ var prompt = require('prompt-confirm'); const p = new prompt('Are you sure? This will permanently delete all existing data on your instance.'); -const nThen = require("nthen"); const Fs = require("fs"); -const Path = require("path"); var config = require("../lib/load-config"); -var Hash = require('../www/common/common-hash'); var Env = require("../lib/env").create(config); Env.Log = { error: console.log }; -var keyOrDefaultString = function (key, def) { - return Path.resolve(typeof(config[key]) === 'string'? config[key]: def); -}; var paths = Env.paths; p.ask(function (answer) { if (!answer) { @@ -20,7 +14,6 @@ p.ask(function (answer) { return; } console.log('Deleting all data...'); - var n = nThen; Object.values(paths).forEach(function (path) { console.log(`Deleting ${path}`); Fs.rmSync(path, { recursive: true, force: true }); diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 018503259..f417a4507 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -2320,7 +2320,6 @@ define([ localStorage.setItem(Constants.tokenKey, data[Constants.tokenKey]); } } - initFeedback(data.feedback); }; @@ -2729,6 +2728,7 @@ define([ if (data.error) { throw new Error(data.error); } if (data.state === 'ALREADY_INIT') { data = data.returned; + initFeedback(data.feedback); } if (data.loggedIn) { diff --git a/www/common/outer/sharedworker.js b/www/common/outer/sharedworker.js index 825deb383..e256f065f 100644 --- a/www/common/outer/sharedworker.js +++ b/www/common/outer/sharedworker.js @@ -111,7 +111,7 @@ var init = function (client, cb) { if (data && data.state === "ALREADY_INIT") { debug('Store already exists!'); self.store = data.returned; - return void cb(data.returned); + return void cb(data); } self.store = data; cb(data);