mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
f7a4a57487
[scripts] refactor create-admin script into generic create-user script GitOrigin-RevId: a6f5c383888538edd392ffd4da90610c380b83a6
59 lines
1.3 KiB
JavaScript
59 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)
|
|
})
|