InstitutionsFeatures.coffee 911 B

1234567891011121314151617181920212223
  1. UserGetter = require '../User/UserGetter'
  2. PlansLocator = require '../Subscription/PlansLocator'
  3. Settings = require 'settings-sharelatex'
  4. logger = require 'logger-sharelatex'
  5. module.exports = InstitutionsFeatures =
  6. getInstitutionsFeatures: (userId, callback = (error, features) ->) ->
  7. InstitutionsFeatures.hasLicence userId, (error, hasLicence) ->
  8. return callback error if error?
  9. return callback(null, {}) unless hasLicence
  10. plan = PlansLocator.findLocalPlanInSettings Settings.institutionPlanCode
  11. callback(null, plan?.features or {})
  12. hasLicence: (userId, callback = (error, hasLicence) ->) ->
  13. UserGetter.getUserFullEmails userId, (error, emailsData) ->
  14. return callback error if error?
  15. affiliation = emailsData.find (emailData) ->
  16. licence = emailData.affiliation?.institution?.licence
  17. emailData.confirmedAt? and licence? and licence != 'free'
  18. callback(null, !!affiliation)