mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 10:17:19 +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:
11
lib/onebox/domain_checker.rb
Normal file
11
lib/onebox/domain_checker.rb
Normal file
@ -0,0 +1,11 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Onebox
|
||||
class DomainChecker
|
||||
def self.is_blocked?(hostname)
|
||||
SiteSetting.blocked_onebox_domains&.split('|').any? do |blocked|
|
||||
hostname == blocked || hostname.end_with?(".#{blocked}")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user