UserCreator.coffee 928 B

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