[misc] keep up with web changes -- add waitForDb wrapper for tasks

This commit is contained in:
Jakob Ackermann 2020-10-05 09:45:43 +01:00
parent 28f326fd98
commit 78b57fcf66
No known key found for this signature in database
GPG key ID: 30C56800FCA3828A

View file

@ -9,31 +9,33 @@ module.exports = (grunt) ->
process.exit(1)
settings = require "settings-sharelatex"
mongodb = require "../web/app/src/infrastructure/mongodb"
UserRegistrationHandler = require "../web/app/src/Features/User/UserRegistrationHandler"
OneTimeTokenHandler = require "../web/app/src/Features/Security/OneTimeTokenHandler"
UserRegistrationHandler.registerNewUser {
email: email
password: require("crypto").randomBytes(32).toString("hex")
}, (error, user) ->
if error? and error?.message != "EmailAlreadyRegistered"
throw error
user.isAdmin = true
user.save (error) ->
throw error if error?
ONE_WEEK = 7 * 24 * 60 * 60 # seconds
OneTimeTokenHandler.getNewToken "password", { expiresIn: ONE_WEEK, email:user.email, user_id: user._id.toString() }, (err, token)->
return next(err) if err?
console.log ""
console.log """
Successfully created #{email} as an admin user.
Please visit the following URL to set a password for #{email} and log in:
#{settings.siteUrl}/user/password/set?passwordResetToken=#{token}
"""
done()
mongodb.waitForDb().then () ->
UserRegistrationHandler.registerNewUser {
email: email
password: require("crypto").randomBytes(32).toString("hex")
}, (error, user) ->
if error? and error?.message != "EmailAlreadyRegistered"
throw error
user.isAdmin = true
user.save (error) ->
throw error if error?
ONE_WEEK = 7 * 24 * 60 * 60 # seconds
OneTimeTokenHandler.getNewToken "password", { expiresIn: ONE_WEEK, email:user.email, user_id: user._id.toString() }, (err, token)->
return next(err) if err?
console.log ""
console.log """
Successfully created #{email} as an admin user.
Please visit the following URL to set a password for #{email} and log in:
#{settings.siteUrl}/user/password/set?passwordResetToken=#{token}
"""
done()
grunt.registerTask 'user:delete', "deletes a user and all their data, Usage: grunt user:delete --email joe@example.com", () ->
done = @async()
@ -42,15 +44,17 @@ module.exports = (grunt) ->
console.error "Usage: grunt user:delete --email=joe@example.com"
process.exit(1)
settings = require "settings-sharelatex"
mongodb = require "../web/app/src/infrastructure/mongodb"
UserGetter = require "../web/app/src/Features/User/UserGetter"
UserDeleter = require "../web/app/src/Features/User/UserDeleter"
UserGetter.getUser email:email, (error, user) ->
if error?
throw error
if !user?
console.log("user #{email} not in database, potentially already deleted")
return done()
UserDeleter.deleteUser user._id, (err)->
if err?
throw err
done()
mongodb.waitForDb().then () ->
UserGetter.getUser email:email, (error, user) ->
if error?
throw error
if !user?
console.log("user #{email} not in database, potentially already deleted")
return done()
UserDeleter.deleteUser user._id, (err)->
if err?
throw err
done()