mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
refactor(config) manageConfig
This commit is contained in:
parent
9c050b3c6e
commit
0d48c6b1e9
3 changed files with 50 additions and 10 deletions
|
|
@ -10,6 +10,7 @@ const fs = require('fs');
|
|||
const exit = require(DIR_SERVER + 'exit');
|
||||
const CloudFunc = require(DIR_COMMON + 'cloudfunc');
|
||||
|
||||
const squad = require('squad');
|
||||
const pullout = require('pullout/legacy');
|
||||
const ponse = require('ponse');
|
||||
const jonny = require('jonny');
|
||||
|
|
@ -20,6 +21,8 @@ const exec = require('execon');
|
|||
const criton = require('criton');
|
||||
const HOME = require('os-homedir')();
|
||||
|
||||
const manageConfig = squad(traverse, cryptoPass);
|
||||
|
||||
const apiURL = CloudFunc.apiURL;
|
||||
|
||||
const ConfigPath = path.join(DIR, 'json/config.json');
|
||||
|
|
@ -32,11 +35,10 @@ const readjsonSync = (name) => {
|
|||
};
|
||||
|
||||
const rootConfig = readjsonSync(ConfigPath);
|
||||
|
||||
const key = (a) => Object.keys(a).pop();
|
||||
|
||||
let configHome;
|
||||
let error = tryCatch(() => {
|
||||
const error = tryCatch(() => {
|
||||
configHome = readjsonSync(ConfigHome);
|
||||
});
|
||||
|
||||
|
|
@ -95,9 +97,8 @@ function connection(socket) {
|
|||
socket.on('message', (json) => {
|
||||
if (typeof json !== 'object')
|
||||
return socket.emit('err', 'Error: Wrong data type!');
|
||||
|
||||
cryptoPass(json);
|
||||
traverse(json);
|
||||
|
||||
manageConfig(json);
|
||||
|
||||
save((error) => {
|
||||
if (error)
|
||||
|
|
@ -117,7 +118,7 @@ function middle(req, res, next) {
|
|||
|
||||
if (req.url !== apiURL + '/config')
|
||||
return next();
|
||||
|
||||
|
||||
switch(req.method) {
|
||||
case 'GET':
|
||||
get(req, res, next);
|
||||
|
|
@ -162,8 +163,7 @@ function patch(req, res, callback) {
|
|||
if (error)
|
||||
return callback(error);
|
||||
|
||||
cryptoPass(json);
|
||||
traverse(json);
|
||||
manageConfig(json);
|
||||
|
||||
save((error) => {
|
||||
if (error)
|
||||
|
|
@ -182,11 +182,18 @@ function traverse(json) {
|
|||
});
|
||||
}
|
||||
|
||||
module.exports._cryptoPass = cryptoPass;
|
||||
function cryptoPass(json) {
|
||||
const algo = manage('algo');
|
||||
|
||||
if (json && json.password)
|
||||
json.password = criton(json.password, algo);
|
||||
if (!json.password)
|
||||
return json;
|
||||
|
||||
const password = criton(json.password, algo);
|
||||
|
||||
return Object.assign({}, json, {
|
||||
password,
|
||||
});
|
||||
}
|
||||
|
||||
function check(socket, authCheck) {
|
||||
|
|
|
|||
3
test/server/config.fixture.json
Normal file
3
test/server/config.fixture.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"password": "9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043"
|
||||
}
|
||||
|
|
@ -9,9 +9,11 @@ const readjson = require('readjson');
|
|||
const root = '../../';
|
||||
const dir = root + 'server/';
|
||||
const config = require(dir + 'config');
|
||||
const {_cryptoPass} = config;
|
||||
|
||||
const pathHomeConfig = path.join(os.homedir(), '.cloudcmd.json');
|
||||
const pathConfig = path.join(__dirname, '..', '..', 'json', 'config.json');
|
||||
const fixture = require('./config.fixture');
|
||||
|
||||
const clean = (name) => {
|
||||
delete require.cache[require.resolve(name)];
|
||||
|
|
@ -76,3 +78,31 @@ test('config: listen: authCheck: not function', (t) => {
|
|||
t.end();
|
||||
});
|
||||
|
||||
test('config: cryptoPass: no password', (t) => {
|
||||
const json = {
|
||||
hello: 'world',
|
||||
};
|
||||
|
||||
const result = _cryptoPass(json);
|
||||
|
||||
t.equal(result, json, 'should not change json');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('config: cryptoPass', (t) => {
|
||||
const json = {
|
||||
password: 'hello',
|
||||
};
|
||||
|
||||
const {password} = fixture;
|
||||
|
||||
const expected = {
|
||||
password,
|
||||
};
|
||||
|
||||
const result = _cryptoPass(json);
|
||||
|
||||
t.deepEqual(result, expected, 'should crypt password');
|
||||
t.end();
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue