-import * as program from 'commander'
-
-import { database as db } from '../server/initializers/database'
+import { program } from 'commander'
+import { isUserPasswordValid } from '../server/helpers/custom-validators/users'
+import { initDatabaseModels } from '../server/initializers/database'
+import { UserModel } from '../server/models/user/user'
program
.option('-u, --user [user]', 'User')
.parse(process.argv)
-if (program.user === undefined) {
+const options = program.opts()
+
+if (options.user === undefined) {
console.error('All parameters are mandatory.')
process.exit(-1)
}
-db.init(true, function () {
- db.User.loadByUsername(program.user, function (err, user) {
- if (err) {
- console.error(err)
- return
- }
-
+initDatabaseModels(true)
+ .then(() => {
+ return UserModel.loadByUsername(options.user)
+ })
+ .then(user => {
if (!user) {
- console.error('User unknown.')
- return
+ console.error('Unknown user.')
+ process.exit(-1)
}
const readline = require('readline')
const Writable = require('stream').Writable
const mutableStdout = new Writable({
- write: function (chunk, encoding, callback) {
+ write: function (_chunk, _encoding, callback) {
callback()
}
})
console.log('New password?')
rl.on('line', function (password) {
- user.password = password
+ if (!isUserPasswordValid(password)) {
+ console.error('New password is invalid.')
+ process.exit(-1)
+ }
- user.save().asCallback(function (err) {
- if (err) {
- console.error(err)
- } else {
- console.log('User password updated.')
- }
+ user.password = password
- process.exit(0)
- })
+ user.save()
+ .then(() => console.log('User password updated.'))
+ .catch(err => console.error(err))
+ .finally(() => process.exit(0))
})
})
-})
+ .catch(err => {
+ console.error(err)
+ process.exit(-1)
+ })