InstitutionsController.coffee 981 B

123456789101112131415161718192021222324
  1. logger = require("logger-sharelatex")
  2. UserGetter = require("../User/UserGetter")
  3. { addAffiliation } = require("../Institutions/InstitutionsAPI")
  4. async = require('async')
  5. module.exports = InstitutionsController =
  6. confirmDomain: (req, res, next) ->
  7. hostname = req.body.hostname
  8. reversedHostname = hostname.trim().split('').reverse().join('')
  9. UserGetter.getUsersByHostname hostname, {_id:1, emails:1}, (error, users) ->
  10. if error?
  11. logger.err error: error, 'problem fetching users by hostname'
  12. return next(error)
  13. async.map users, ((user) ->
  14. matchingEmails = user.emails.filter (email) -> email.reversedHostname == reversedHostname
  15. for email in matchingEmails
  16. addAffiliation user._id, email.email, {confirmedAt: email.confirmedAt}, (error) =>
  17. if error?
  18. logger.err error: error, 'problem adding affiliation while confirming hostname'
  19. return next(error)
  20. ), (error) ->
  21. if error?
  22. return next(error)
  23. res.sendStatus 200