sso.ts 948 B

1234567891011121314151617181920212223242526272829303132
  1. import getMeta from '../../../utils/meta'
  2. import { DomainInfo } from '../components/emails/add-email/input'
  3. import { Institution } from '../../../../../types/institution'
  4. export const ssoAvailableForDomain = (
  5. domain: DomainInfo | null
  6. ): domain is DomainInfo => {
  7. const { hasSamlBeta, hasSamlFeature } = getMeta('ol-ExposedSettings')
  8. if (!hasSamlFeature || !domain || !domain.confirmed || !domain.university) {
  9. return false
  10. }
  11. if (domain.university.ssoEnabled) {
  12. return true
  13. }
  14. return Boolean(hasSamlBeta && domain.university.ssoBeta)
  15. }
  16. export const ssoAvailableForInstitution = (institution: Institution | null) => {
  17. const { hasSamlBeta, hasSamlFeature } = getMeta('ol-ExposedSettings')
  18. if (
  19. !hasSamlFeature ||
  20. !institution ||
  21. !institution.confirmed ||
  22. !institution.isUniversity
  23. ) {
  24. return false
  25. }
  26. if (institution.ssoEnabled) {
  27. return true
  28. }
  29. return hasSamlBeta && institution.ssoBeta
  30. }