diff options
author | Thibaut Girka <thib@sitedethib.com> | 2019-08-30 13:38:41 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-08-30 13:38:41 +0200 |
commit | 9044a2b051da18e9f70fd4fae55c2bd232891d1f (patch) | |
tree | 0bf32b0fa0e854f75e50c1dee05ec41f6b301bf4 /app/validators/domain_validator.rb | |
parent | 2848c08953a8555e06791170dbf1090575e05d8a (diff) | |
parent | 49f57b55346f8e62d21a3c8bc63301038ecb796f (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: - app/views/directories/index.html.haml Upstream has redesigned the profile directory, and we had a glitch-soc-specific change to hide follower counts. Ported that change to the new design.
Diffstat (limited to 'app/validators/domain_validator.rb')
-rw-r--r-- | app/validators/domain_validator.rb | 12 |
1 files changed, 10 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 |