mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
|
const minimist = require('minimist')
|
||
|
const { db, waitForDb } = require('../../../app/src/infrastructure/mongodb')
|
||
|
const UserRegistrationHandler = require('../../../app/src/Features/User/UserRegistrationHandler')
|
||
|
|
||
|
async function main() {
|
||
|
await waitForDb()
|
||
|
|
||
|
const argv = minimist(process.argv.slice(2), {
|
||
|
string: ['email'],
|
||
|
boolean: ['admin'],
|
||
|
})
|
||
|
|
||
|
const { admin, email } = argv
|
||
|
if (!email) {
|
||
|
console.error(`Usage: node ${__filename} [--admin] --email=joe@example.com`)
|
||
|
process.exit(1)
|
||
|
}
|
||
|
|
||
|
await new Promise((resolve, reject) => {
|
||
|
UserRegistrationHandler.registerNewUserAndSendActivationEmail(
|
||
|
email,
|
||
|
(error, user, setNewPasswordUrl) => {
|
||
|
if (error) {
|
||
|
return reject(error)
|
||
|
}
|
||
|
db.users.updateOne(
|
||
|
{ _id: user._id },
|
||
|
{ $set: { isAdmin: admin } },
|
||
|
error => {
|
||
|
if (error) {
|
||
|
return reject(error)
|
||
|
}
|
||
|
|
||
|
console.log('')
|
||
|
console.log(`\
|
||
|
Successfully created ${email} as ${admin ? 'an admin' : 'a'} user.
|
||
|
|
||
|
Please visit the following URL to set a password for ${email} and log in:
|
||
|
|
||
|
${setNewPasswordUrl}
|
||
|
|
||
|
`)
|
||
|
resolve()
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
main()
|
||
|
.then(() => {
|
||
|
console.error('Done.')
|
||
|
process.exit(0)
|
||
|
})
|
||
|
.catch(err => {
|
||
|
console.error(err)
|
||
|
process.exit(1)
|
||
|
})
|