From 91b182b04afbd184359d2ffa8be7563208473216 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 14 May 2025 20:36:24 +0300 Subject: [PATCH] adjust email validate --- lib/params/base_validator.rb | 2 +- lib/submissions.rb | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/params/base_validator.rb b/lib/params/base_validator.rb index 988cbfcb..cd0005f6 100644 --- a/lib/params/base_validator.rb +++ b/lib/params/base_validator.rb @@ -72,7 +72,7 @@ module Params return if params[key].blank? return if params[key].to_s.include?('<') - if params[key].to_s.strip.split(/\s*[;,]\s*/).compact_blank + if params[key].to_s.strip.split(%r{\s*[;,/]\s*}).compact_blank .all? { |email| EmailTypo::DotCom.call(email).match?(EMAIL_REGEXP) || email.include?('--') } return end diff --git a/lib/submissions.rb b/lib/submissions.rb index cf6ef851..3f52cbf5 100644 --- a/lib/submissions.rb +++ b/lib/submissions.rb @@ -118,15 +118,17 @@ module Submissions return if email.blank? return if email.is_a?(Numeric) - return email.downcase if email.to_s.include?(',') || - email.to_s.match?(/\.(?:gob|om|mm|cm|et|mo|nz|za|ie)\z/) || - email.to_s.exclude?('.') + email = email.to_s.tr('/', ',') + + return email.downcase if email.include?(',') || + email.match?(/\.(?:gob|om|mm|cm|et|mo|nz|za|ie)\z/) || + email.exclude?('.') fixed_email = EmailTypo.call(email.delete_prefix('<')) return fixed_email if fixed_email == email - domain = email.to_s.split('@').last.to_s.downcase + domain = email.split('@').last.to_s.downcase fixed_domain = fixed_email.to_s.split('@').last return email.downcase if domain == fixed_domain