diff options
author | ThibG <thib@sitedethib.com> | 2020-06-01 19:41:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-01 19:41:33 +0200 |
commit | f328f2faa3fbdb182921366c6a20e745c069b840 (patch) | |
tree | 39b6adb53dfda648ff7e6c802f9ec758049f6eb2 /app/models | |
parent | 1f94f4009e5b072f8b508b1bf1a046ea034de7c1 (diff) | |
parent | c225ac8b9eebf4cc3f32bf3f204f7a5256d93d38 (diff) |
Merge pull request #1347 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/concerns/domain_normalizable.rb | 2 | ||||
-rw-r--r-- | app/models/domain_block.rb | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/app/models/concerns/domain_normalizable.rb b/app/models/concerns/domain_normalizable.rb index c00b3142f..fb84058fc 100644 --- a/app/models/concerns/domain_normalizable.rb +++ b/app/models/concerns/domain_normalizable.rb @@ -4,7 +4,7 @@ module DomainNormalizable extend ActiveSupport::Concern included do - before_save :normalize_domain + before_validation :normalize_domain end private diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index f0a5bd296..2b18e01fa 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -50,11 +50,13 @@ class DomainBlock < ApplicationRecord def rule_for(domain) return if domain.blank? - uri = Addressable::URI.new.tap { |u| u.host = domain.gsub(/[\/]/, '') } + uri = Addressable::URI.new.tap { |u| u.host = domain.strip.gsub(/[\/]/, '') } segments = uri.normalized_host.split('.') variants = segments.map.with_index { |_, i| segments[i..-1].join('.') } where(domain: variants).order(Arel.sql('char_length(domain) desc')).first + rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError + nil end end |