From d53c0716e611bffc613ab383bc125e9d64d41d28 Mon Sep 17 00:00:00 2001 From: Mattias Erming Date: Thu, 11 Sep 2014 14:00:08 -0700 Subject: [PATCH] Added 'shout reset' command --- package.json | 2 +- src/command-line/add.js | 18 +++++++----------- src/command-line/index.js | 1 + src/command-line/reset.js | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 src/command-line/reset.js diff --git a/package.json b/package.json index d5571a6b..8c49a720 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "shout", "description": "A web IRC client", - "version": "0.25.0", + "version": "0.25.1", "author": "Mattias Erming", "preferGlobal": true, "bin": { diff --git a/src/command-line/add.js b/src/command-line/add.js index 9becffe1..f430e8a7 100644 --- a/src/command-line/add.js +++ b/src/command-line/add.js @@ -47,16 +47,12 @@ program if (err) { return; } - bcrypt.hash(password, 8, function(err, hash) { - if (err) { - return; - } - manager.addUser( - name, - hash - ); - console.log("Added '" + name + "'."); - console.log(""); - }); + var hash = hashSync(password, 8); + manager.addUser( + name, + hash + ); + console.log("Added '" + name + "'."); + console.log(""); }); }); diff --git a/src/command-line/index.js b/src/command-line/index.js index fee6232d..a281f43b 100644 --- a/src/command-line/index.js +++ b/src/command-line/index.js @@ -6,6 +6,7 @@ require("./config"); require("./list"); require("./add"); require("./remove"); +require("./reset"); require("./edit"); program.parse(process.argv); diff --git a/src/command-line/reset.js b/src/command-line/reset.js new file mode 100644 index 00000000..2e1cdf10 --- /dev/null +++ b/src/command-line/reset.js @@ -0,0 +1,39 @@ +var bcrypt = require("bcrypt"); +var ClientManager = new require("../clientManager"); +var fs = require("fs"); +var program = require("commander"); + +const HOME = process.env.HOME + "/.shout"; + +program + .command("reset ") + .description("Reset user password") + .action(function(name) { + var users = new ClientManager().getUsers(); + if (users.indexOf(name) === -1) { + console.log(""); + console.log("User '" + name + "' doesn't exist."); + console.log(""); + return; + } + var path = HOME + "/users/"; + var file = path + name + "/user.json"; + var user = require(file); + require("read")({ + prompt: "Password: " + }, function(err, password) { + console.log(""); + if (err) { + return; + } + var hash = bcrypt.hashSync(password, 8); + user.password = hash; + fs.writeFileSync( + file, + JSON.stringify(user, null, " "), + {mode: "0777"} + ); + console.log("Successfully reset password for '" + name + "'."); + console.log(""); + }); + });