]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - scripts/reset-password.ts
refactor(types): create dedicated folder for types package src
[github/Chocobozzz/PeerTube.git] / scripts / reset-password.ts
index a6863f807fa6c7e6085a02ac250675d3d4c4ed24..4c45396d4f46a53db0612d179b6f20694d6a7d45 100755 (executable)
@@ -1,30 +1,36 @@
-import * as program from 'commander'
-import { initDatabase } from '../server/initializers'
-import { UserModel } from '../server/models/account/user'
+import { registerTSPaths } from '../server/helpers/register-ts-paths'
+registerTSPaths()
+
+import { program } from 'commander'
+import { initDatabaseModels } from '../server/initializers/database'
+import { UserModel } from '../server/models/user/user'
+import { isUserPasswordValid } from '../server/helpers/custom-validators/users'
 
 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)
 }
 
-initDatabase(true)
+initDatabaseModels(true)
   .then(() => {
-    return UserModel.loadByUsername(program['user'])
+    return UserModel.loadByUsername(options.user)
   })
   .then(user => {
     if (!user) {
-      console.error('User unknown.')
+      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()
       }
     })
@@ -36,6 +42,11 @@ initDatabase(true)
 
     console.log('New password?')
     rl.on('line', function (password) {
+      if (!isUserPasswordValid(password)) {
+        console.error('New password is invalid.')
+        process.exit(-1)
+      }
+
       user.password = password
 
       user.save()
@@ -44,3 +55,7 @@ initDatabase(true)
         .finally(() => process.exit(0))
     })
   })
+  .catch(err => {
+    console.error(err)
+    process.exit(-1)
+  })