Features.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* eslint-disable
  2. max-len,
  3. */
  4. // TODO: This file was created by bulk-decaffeinate.
  5. // Fix any style issues and re-enable lint.
  6. /*
  7. * decaffeinate suggestions:
  8. * DS102: Remove unnecessary code created because of implicit returns
  9. * DS207: Consider shorter variations of null checks
  10. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  11. */
  12. let Features
  13. const Settings = require('settings-sharelatex')
  14. module.exports = Features = {
  15. externalAuthenticationSystemUsed() {
  16. return (
  17. Settings.ldap != null ||
  18. Settings.saml != null ||
  19. (Settings.overleaf != null ? Settings.overleaf.oauth : undefined) != null
  20. )
  21. },
  22. hasFeature(feature) {
  23. switch (feature) {
  24. case 'homepage':
  25. return Settings.enableHomepage
  26. case 'registration':
  27. return (
  28. !Features.externalAuthenticationSystemUsed() ||
  29. Settings.overleaf != null
  30. )
  31. case 'github-sync':
  32. return Settings.enableGithubSync
  33. case 'git-bridge':
  34. return Settings.enableGitBridge
  35. case 'custom-togglers':
  36. return Settings.overleaf != null
  37. case 'oauth':
  38. return Settings.oauth != null
  39. case 'templates-server-pro':
  40. return Settings.overleaf == null
  41. case 'affiliations':
  42. case 'analytics':
  43. // Checking both properties is needed for the time being to allow
  44. // enabling the feature in web-api and disabling in Server Pro
  45. // see https://github.com/overleaf/web-internal/pull/2127
  46. return Settings.apis.v1 && !!Settings.apis.v1.url
  47. case 'redirect-sl':
  48. return Settings.redirectToV2 != null
  49. case 'overleaf-integration':
  50. return Settings.overleaf != null
  51. case 'references':
  52. return Settings.apis.references.url != null
  53. case 'saml':
  54. return Settings.enableSaml
  55. case 'link-url':
  56. return Settings.apis.linkedUrlProxy && Settings.apis.linkedUrlProxy.url
  57. default:
  58. throw new Error(`unknown feature: ${feature}`)
  59. }
  60. }
  61. }