Project

General

Profile

Defect #42584 » fix-email-address-domain_in-v2.patch

Go MAEDA, 2025-04-16 07:46

View differences:

app/models/email_address.rb
74 74

  
75 75
  # Returns true if domain belongs to domains list.
76 76
  def self.domain_in?(domain, domains)
77
    domain = domain.downcase
77
    domain = domain.to_s.downcase
78 78
    domains = domains.to_s.split(/[\s,]+/) unless domains.is_a?(Array)
79 79
    domains.reject(&:blank?).map(&:downcase).any? do |s|
80 80
      s.start_with?('.') ? domain.end_with?(s) : domain == s
......
150 150

  
151 151
  def validate_email_domain
152 152
    domain = address.partition('@').last
153
    # Skip domain validation if the email does not contain a domain part,
154
    # to avoid an incomplete error message like "domain not allowed ()"
155
    return if domain.empty?
156

  
153 157
    return if self.class.valid_domain?(domain)
154 158

  
155 159
    if User.current.logged?
test/unit/email_address_test.rb
63 63
    end
64 64
  end
65 65

  
66
  def test_domain_in_should_not_raise_exception_when_domain_is_nil
67
    assert_nothing_raised do
68
      assert_not EmailAddress.domain_in?(nil, 'example.com')
69
    end
70
  end
71

  
66 72
  def test_should_reject_invalid_email
67 73
    assert_not EmailAddress.new(address: 'invalid,email@example.com').valid?
68 74
  end
(2-2/2)