arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
commonroutesServer/resetPasswordUser.js
resetPasswordUser.jsRaw
 1/*
 2script to reset password for a user
 3*/
 4
 5var config = require('./config');
 6var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
 7var crypto = require('crypto');
 8
 9var mongoose = require('mongoose');
10
11mongoose.Promise = global.Promise;
12// Connection to DB
13mongoose.connect(config.database, function(err, res) {
14    if (err) {
15        console.log(err);
16    };
17    console.log('Connected to Database');
18});
19
20var userMdl = require('./models/userModel');
21var userModel = mongoose.model('userModel');
22
23var readlineSync = require('readline-sync');
24
25
26
27console.log("Welcome to Common Routes");
28console.log("----------");
29console.log("This is the resetPassword.js");
30
31
32var username = readlineSync.question('Enter the username: ');
33if ((username == "")) {
34  console.log("username can't be empty");
35  process.exit(0);
36}
37
38console.log('Hi ' + username + '!');
39
40
41var clearPassword = readlineSync.question('Enter the new password: ', {
42  hideEchoBack: true // The typed text on screen is hidden by `*` (default).
43});
44var clearPassword2 = readlineSync.question('Enter the new password again: ', {
45  hideEchoBack: true // The typed text on screen is hidden by `*` (default).
46});
47if (clearPassword != clearPassword2) {
48  console.log("passwords don't match");
49  process.exit(0);
50}
51if (clearPassword == "undefined") {
52  console.log("Password can't be empty");
53  process.exit(0);
54}
55/*if (clearPassword.length < 10) {
56  console.log("Please, choose a password with more than 10 characters");
57  process.exit(0);
58}*/
59
60
61var newPassword = crypto.createHash('sha256').update(clearPassword).digest('base64')
62console.log(newPassword);
63userModel.findOne({
64    username: username
65  })
66  .select('+password')
67  .exec(function(err, user) {
68    if (err) {
69      console.log(err);
70      process.exit(0);
71    }
72    console.log(user);
73
74    if (!user) {
75      console.log("user not found");
76      process.exit(0);
77    } else if (user) {
78      user.password = newPassword;
79      user.save(function(err, user) {
80        if (err) {
81          console.log(err);
82          process.exit(0);
83        }
84
85        console.log("password successfully changed");
86        process.exit(0);
87      });
88    }
89
90  });