mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
Only block domains at the final destination (#15689)
In an earlier PR, we decided that we only want to block a domain if the blocked domain in the SiteSetting is the final destination (/t/59305). That PR used `FinalDestination#get`. `resolve` however is used several places but blocks domains along the redirect chain when certain options are provided. This commit changes the default options for `resolve` to not do that. Existing users of `FinalDestination#resolve` are - `Oneboxer#external_onebox` - our onebox helper `fetch_html_doc`, which is used in amazon, standard embed and youtube - these folks already go through `Oneboxer#external_onebox` which already blocks correctly
This commit is contained in:
27
spec/lib/onebox/domain_checker_spec.rb
Normal file
27
spec/lib/onebox/domain_checker_spec.rb
Normal file
@ -0,0 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe Onebox::DomainChecker do
|
||||
describe '.is_blocked?' do
|
||||
before do
|
||||
SiteSetting.blocked_onebox_domains = "api.cat.org|kitten.cloud"
|
||||
end
|
||||
|
||||
describe "returns true when entirely matched" do
|
||||
it { expect(described_class.is_blocked?("api.cat.org")).to be(true) }
|
||||
it { expect(described_class.is_blocked?("kitten.cloud")).to be(true) }
|
||||
it { expect(described_class.is_blocked?("api.dog.org")).to be(false) }
|
||||
it { expect(described_class.is_blocked?("puppy.cloud")).to be(false) }
|
||||
end
|
||||
|
||||
describe "returns true when ends with .<domain>" do
|
||||
it { expect(described_class.is_blocked?("dev.api.cat.org")).to be(true) }
|
||||
it { expect(described_class.is_blocked?(".api.cat.org")).to be(true) }
|
||||
it { expect(described_class.is_blocked?("dev.kitten.cloud")).to be(true) }
|
||||
it { expect(described_class.is_blocked?(".kitten.cloud")).to be(true) }
|
||||
it { expect(described_class.is_blocked?("xapi.cat.org")).to be(false) }
|
||||
it { expect(described_class.is_blocked?("xkitten.cloud")).to be(false) }
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user