UserCreator.coffee 906 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. User = require("../../models/User").User
  2. UserLocator = require("./UserLocator")
  3. logger = require("logger-sharelatex")
  4. metrics = require('metrics-sharelatex')
  5. module.exports = UserCreator =
  6. getUserOrCreateHoldingAccount: (email, callback = (err, user)->)->
  7. self = @
  8. UserLocator.findByEmail email, (err, user)->
  9. if user?
  10. callback(err, user)
  11. else
  12. self.createNewUser email:email, holdingAccount:true, callback
  13. createNewUser: (opts, callback)->
  14. logger.log opts:opts, "creating new user"
  15. user = new User()
  16. username = opts.email.match(/^[^@]*/)
  17. if !opts.first_name? or opts.first_name == ""
  18. opts.first_name = username[0]
  19. for key, value of opts
  20. user[key] = value
  21. user.ace.syntaxValidation = true
  22. user.featureSwitches?.pdfng = true
  23. user.save (err)->
  24. callback(err, user)
  25. metrics.timeAsyncMethod(
  26. UserCreator, 'createNewUser',
  27. 'mongo.UserCreator',
  28. logger
  29. )