feat(bin): add option --reset to reset user password

Signed-off-by: Erona <erona@loli.bz>
This commit is contained in:
Erona 2018-10-29 22:33:26 +08:00
parent 79842b82e8
commit e90d4d824b
No known key found for this signature in database
GPG key ID: C9B930B72E7104C0

View file

@ -17,6 +17,7 @@ Usage: bin/manage_users [--pass password] (--add | --del) user-email
Options: Options:
--add Add user with the specified user-email --add Add user with the specified user-email
--del Delete user with specified user-email --del Delete user with specified user-email
--reset Reset user password with specified user-email
--pass Use password from cmdline rather than prompting --pass Use password from cmdline rather than prompting
`); `);
process.exit(1); process.exit(1);
@ -67,9 +68,28 @@ async function deleteUser(argv) {
console.log(`Deleted user ${argv["del"]} ...`); console.log(`Deleted user ${argv["del"]} ...`);
} }
var options = {
// Using an async function to be able to use await inside
async function resetUser(argv) {
const existing_user = await models.User.findOne({where: {email: argv["reset"]}});
// Cannot reset non-existing users
if(existing_user == undefined) {
console.log(`User with e-mail ${argv["reset"]} does not exist, cannot reset`);
process.exit(1);
}
const pass = getPass(argv, "reset");
// set password and save
existing_user.password = pass;
await existing_user.save();
console.log(`User with email ${argv["reset"]} password has been reset`);
}
const options = {
add: createUser, add: createUser,
del: deleteUser, del: deleteUser,
reset: resetUser,
}; };
// Perform commandline-parsing // Perform commandline-parsing