email_domain_block.rb 707 B

123456789101112131415161718192021222324252627282930
  1. # frozen_string_literal: true
  2. # == Schema Information
  3. #
  4. # Table name: email_domain_blocks
  5. #
  6. # id :bigint(8) not null, primary key
  7. # domain :string default(""), not null
  8. # created_at :datetime not null
  9. # updated_at :datetime not null
  10. #
  11. class EmailDomainBlock < ApplicationRecord
  12. include DomainNormalizable
  13. validates :domain, presence: true, uniqueness: true, domain: true
  14. def self.block?(email)
  15. _, domain = email.split('@', 2)
  16. return true if domain.nil?
  17. begin
  18. domain = TagManager.instance.normalize_domain(domain)
  19. rescue Addressable::URI::InvalidURIError
  20. return true
  21. end
  22. where(domain: domain).exists?
  23. end
  24. end