overleaf/services/web/app/coffee/Features/User/UserCreator.coffee

47 lines
1.1 KiB
CoffeeScript
Raw Normal View History

2014-02-12 05:23:40 -05:00
User = require("../../models/User").User
UserLocator = require("./UserLocator")
logger = require("logger-sharelatex")
2017-03-17 10:55:41 -04:00
metrics = require('../../infrastructure/Metrics')
2014-02-12 05:23:40 -05:00
2017-03-17 10:55:41 -04:00
module.exports = UserCreator =
2014-02-12 05:23:40 -05:00
getUserOrCreateHoldingAccount: (email, callback = (err, user)->)->
self = @
UserLocator.findByEmail email, (err, user)->
if user?
callback(err, user)
else
self.createNewUser email:email, holdingAccount:true, callback
createNewUser: (opts, callback)->
logger.log opts:opts, "creating new user"
2014-02-12 05:23:40 -05:00
user = new User()
user.email = opts.email
user.holdingAccount = opts.holdingAccount
user.ace.syntaxValidation = true
username = opts.email.match(/^[^@]*/)
if opts.first_name? and opts.first_name.length != 0
user.first_name = opts.first_name
else if username?
user.first_name = username[0]
else
user.first_name = ""
if opts.last_name?
user.last_name = opts.last_name
else
user.last_name = ""
user.featureSwitches?.pdfng = true
2014-02-12 05:23:40 -05:00
user.save (err)->
callback(err, user)
2017-03-17 10:55:41 -04:00
metrics.timeAsyncMethod(
UserCreator, 'createNewUser',
'mongo.UserCreator',
logger
)