InstitutionsFeatures.coffee 1.0 KB

12345678910111213141516171819202122232425262728
  1. InstitutionsGetter = require './InstitutionsGetter'
  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.getInstitutionsPlan userId, (error, plan) ->
  8. return callback error if error?
  9. plan = PlansLocator.findLocalPlanInSettings plan
  10. callback(null, plan?.features or {})
  11. getInstitutionsPlan: (userId, callback = (error, plan) ->) ->
  12. InstitutionsFeatures.hasLicence userId, (error, hasLicence) ->
  13. return callback error if error?
  14. return callback(null, null) unless hasLicence
  15. callback(null, Settings.institutionPlanCode)
  16. hasLicence: (userId, callback = (error, hasLicence) ->) ->
  17. InstitutionsGetter.getConfirmedInstitutions userId, (error, institutions) ->
  18. return callback error if error?
  19. hasLicence = institutions.some (institution) ->
  20. institution.licence and institution.licence != 'free'
  21. callback(null, hasLicence)