diff options
author | ThibG <thib@sitedethib.com> | 2019-08-31 19:44:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-31 19:44:47 +0200 |
commit | 147e90f35d9aadfbe15d044f3ce48be77e26968a (patch) | |
tree | b8aad6a1a34cd897bdb187cdf1fb1cacf7ac721c /app/validators | |
parent | 2848c08953a8555e06791170dbf1090575e05d8a (diff) | |
parent | ef270ed0df5a247b77853610f2f108206828a67a (diff) |
Merge pull request #1209 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/validators')
-rw-r--r-- | app/validators/domain_validator.rb | 12 | ||||
-rw-r--r-- | app/validators/email_mx_validator.rb | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/app/validators/domain_validator.rb b/app/validators/domain_validator.rb index ae07f1798..6e4a854ff 100644 --- a/app/validators/domain_validator.rb +++ b/app/validators/domain_validator.rb @@ -4,14 +4,22 @@ class DomainValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) return if value.blank? - record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(value) + domain = begin + if options[:acct] + value.split('@').last + else + value + end + end + + record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(domain) end private def compliant?(value) Addressable::URI.new.tap { |uri| uri.host = value } - rescue Addressable::URI::InvalidURIError + rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError false end end diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb index 96fbedcfc..9b5009966 100644 --- a/app/validators/email_mx_validator.rb +++ b/app/validators/email_mx_validator.rb @@ -14,6 +14,7 @@ class EmailMxValidator < ActiveModel::Validator return true if domain.nil? + domain = TagManager.instance.normalize_domain(domain) hostnames = [] ips = [] @@ -29,6 +30,8 @@ class EmailMxValidator < ActiveModel::Validator end ips.empty? || on_blacklist?(hostnames + ips) + rescue Addressable::URI::InvalidURIError + true end def on_blacklist?(values) |