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(""); + }); + });