From e24dcf8e5f2e020431640f5c122515221a6faf12 Mon Sep 17 00:00:00 2001 From: John Pitchko Date: Sat, 16 Apr 2022 09:23:57 -0600 Subject: [PATCH 1/2] Update spec --- core/spec/lib/spree/core/validators/email_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/spec/lib/spree/core/validators/email_spec.rb b/core/spec/lib/spree/core/validators/email_spec.rb index 134da68da7e..e346961714b 100644 --- a/core/spec/lib/spree/core/validators/email_spec.rb +++ b/core/spec/lib/spree/core/validators/email_spec.rb @@ -28,7 +28,8 @@ class Tester 'invalidemailemail.com', '@invalid.email@email.com', 'invalid@email@email.com', - 'invalid.email@@email.com' + 'invalid.email@@email.com', + 'invalid.email@gmail' ] } From d65fbc82c1fc5de826ce3169b3c8401dfec81d63 Mon Sep 17 00:00:00 2001 From: John Pitchko Date: Sat, 16 Apr 2022 09:35:36 -0600 Subject: [PATCH 2/2] Validate email has a domain --- core/lib/spree/core/validators/email.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/lib/spree/core/validators/email.rb b/core/lib/spree/core/validators/email.rb index bfc5e22d527..3220420f257 100644 --- a/core/lib/spree/core/validators/email.rb +++ b/core/lib/spree/core/validators/email.rb @@ -13,11 +13,16 @@ module Spree # class EmailValidator < ActiveModel::EachValidator EMAIL_REGEXP = URI::MailTo::EMAIL_REGEXP + EMAIL_DOMAIN_REGEXP = /\.[a-z]+/i def validate_each(record, attribute, value) - unless EMAIL_REGEXP.match? value + unless valid_email?(value) record.errors.add(attribute, :invalid, { value: value }.merge!(options)) end end + + def valid_email?(value) + EMAIL_REGEXP.match?(value) && EMAIL_DOMAIN_REGEXP.match?(value) + end end end