diff options
author | Surinna Curtis <ekiru.0@gmail.com> | 2017-11-16 01:38:26 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-16 01:38:26 -0600 |
commit | ee560abdbe7a2caf0f7ac6137faf248bbaff9a93 (patch) | |
tree | fcd9bdb5ba49ab7a6a79590c74db858ae77b4239 /app/models/email_domain_block.rb | |
parent | 88627fd7aa2493a6890d60a5965459e4c7fe6fe9 (diff) | |
parent | 35fbdc36f92b610e8a73e2acb220e87cf5fc83b0 (diff) |
Merge pull request #216 from glitch-soc/merge-upstream-3023725
Merge upstream at commit 3023725
Diffstat (limited to 'app/models/email_domain_block.rb')
-rw-r--r-- | app/models/email_domain_block.rb | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb index 839038bea..2c348197c 100644 --- a/app/models/email_domain_block.rb +++ b/app/models/email_domain_block.rb @@ -3,15 +3,34 @@ # # Table name: email_domain_blocks # -# id :integer not null, primary key -# domain :string not null +# id :bigint not null, primary key +# domain :string default(""), not null # created_at :datetime not null # updated_at :datetime not null # class EmailDomainBlock < ApplicationRecord + before_validation :normalize_domain + + validates :domain, presence: true, uniqueness: true + def self.block?(email) - domain = email.gsub(/.+@([^.]+)/, '\1') + _, domain = email.split('@', 2) + + return true if domain.nil? + + begin + domain = TagManager.instance.normalize_domain(domain) + rescue Addressable::URI::InvalidURIError + return true + end + where(domain: domain).exists? end + + private + + def normalize_domain + self.domain = TagManager.instance.normalize_domain(domain) + end end |