UserPrimaryEmailCheckHandler.mjs 681 B

123456789101112131415161718192021222324252627282930313233
  1. import Settings from '@overleaf/settings'
  2. function requiresPrimaryEmailCheck({
  3. email,
  4. emails,
  5. lastPrimaryEmailCheck,
  6. signUpDate,
  7. }) {
  8. const hasExpired = date => {
  9. if (!date) {
  10. return true
  11. }
  12. return Date.now() - date.getTime() > Settings.primary_email_check_expiration
  13. }
  14. const primaryEmailConfirmedAt = emails.find(
  15. emailEntry => emailEntry.email === email
  16. ).confirmedAt
  17. if (primaryEmailConfirmedAt && !hasExpired(primaryEmailConfirmedAt)) {
  18. return false
  19. }
  20. if (lastPrimaryEmailCheck) {
  21. return hasExpired(lastPrimaryEmailCheck)
  22. } else {
  23. return hasExpired(signUpDate)
  24. }
  25. }
  26. export default {
  27. requiresPrimaryEmailCheck,
  28. }