create-user.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const minimist = require('minimist')
  2. const { db } = require('../../../app/src/infrastructure/mongodb')
  3. const UserRegistrationHandler = require('../../../app/src/Features/User/UserRegistrationHandler')
  4. async function main() {
  5. const argv = minimist(process.argv.slice(2), {
  6. string: ['email'],
  7. boolean: ['admin'],
  8. })
  9. const { admin, email } = argv
  10. if (!email) {
  11. console.error(`Usage: node ${__filename} [--admin] --email=joe@example.com`)
  12. process.exit(1)
  13. }
  14. await new Promise((resolve, reject) => {
  15. UserRegistrationHandler.registerNewUserAndSendActivationEmail(
  16. email,
  17. (error, user, setNewPasswordUrl) => {
  18. if (error) {
  19. return reject(error)
  20. }
  21. db.users.updateOne(
  22. { _id: user._id },
  23. { $set: { isAdmin: admin } },
  24. error => {
  25. if (error) {
  26. return reject(error)
  27. }
  28. console.log('')
  29. console.log(`\
  30. Successfully created ${email} as ${admin ? 'an admin' : 'a'} user.
  31. Please visit the following URL to set a password for ${email} and log in:
  32. ${setNewPasswordUrl}
  33. `)
  34. resolve()
  35. }
  36. )
  37. }
  38. )
  39. })
  40. }
  41. main()
  42. .then(() => {
  43. console.error('Done.')
  44. process.exit(0)
  45. })
  46. .catch(err => {
  47. console.error(err)
  48. process.exit(1)
  49. })