diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-12-09 21:54:20 -0600 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-12-10 02:36:33 -0600 |
commit | 7fe078cf50aa92406dd96b452a240a8011f3601c (patch) | |
tree | 8d6ef91d5bd05a4885760c4070d136dcc08a406d /app/helpers | |
parent | 5242ebf5633a7ebc0147bd3770c356e9700e6def (diff) |
remove no-longer-useful context checks from autoreject helper
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/autoreject_helper.rb | 40 |
1 files changed, 4 insertions, 36 deletions
diff --git a/app/helpers/autoreject_helper.rb b/app/helpers/autoreject_helper.rb index 264fd94e2..ec88a4825 100644 --- a/app/helpers/autoreject_helper.rb +++ b/app/helpers/autoreject_helper.rb @@ -1,8 +1,6 @@ module AutorejectHelper include ModerationHelper - AUTOBLOCK_TRIGGERS = [:context, :context_starts_with, :context_contains] - def should_reject?(uri = nil) if uri.nil? if @object @@ -13,14 +11,15 @@ module AutorejectHelper end return if uri.nil? + return unless @json || @object domain = uri.scan(/[\w\-]+\.[\w\-]+(?:\.[\w\-]+)*/).first blocks = DomainBlock.suspend return [:domain, uri] if blocks.where(domain: domain).or(blocks.where('domain LIKE ?', "%.#{domain}")).exists? - return unless @json || @object - - context = @object['@context'] if @object + domain = uri.scan(/[\w\-]+\.[\w\-]+(?:\.[\w\-]+)*/).first + blocks = DomainBlock.suspend + return [:domain, uri] if blocks.where(domain: domain).or(blocks.where('domain LIKE ?', "%.#{domain}")).exists? if @json oid = @json['id'] @@ -41,20 +40,6 @@ module AutorejectHelper return [:username_starts_with, uri] if ENV.fetch('REJECT_IF_USERNAME_STARTS_WITH', '').split.any? { |r| username.start_with?(r) } return [:username_contains, uri] if ENV.fetch('REJECT_IF_USERNAME_CONTAINS', '').split.any? { |r| r.in?(username) } end - - context = @json['@context'] unless @object && context - end - - return unless context - - if context.is_a?(Array) - inline_context = context.find { |item| item.is_a?(Hash) } - if inline_context - keys = inline_context.keys - return [:context, uri] if ENV.fetch('REJECT_IF_CONTEXT_EQUALS', '').split.any? { |r| r.in?(keys) } - return [:context_starts_with, uri] if ENV.fetch('REJECT_IF_CONTEXT_STARTS_WITH', '').split.any? { |r| keys.any? { |k| k.start_with?(r) } } - return [:context_contains, uri] if ENV.fetch('REJECT_IF_CONTEXT_CONTAINS', '').split.any? { |r| keys.any? { |k| r.in?(k) } } - end end nil @@ -74,34 +59,17 @@ module AutorejectHelper "the author's username starts with a blocked phrase" when :username_contains "the author's username contains a blocked phrase" - when :context - "the object's JSON-LD context has a key matching a blocked phrase" - when :context_starts_with - "the object's JSON-LD context has a key starting with a blocked phrase" - when :context_contains - "the object's JSON-LD context has a key containing a blocked phrase" else "of an undefined reason" end end - def should_autoblock?(reason) - @json['type'] == 'Create' && reason.in?(AUTOBLOCK_TRIGGERS) - end - - def autoblock!(uri, reason) - return if uri.nil? - domain = uri.scan(/[\w\-]+\.[\w\-]+(?:\.[\w\-]+)*/).first - domain_policy(uri, :suspend, "Sent an ActivityPub payload (#{uri}) where #{reason}.") - end - def autoreject?(uri = nil) return false if @options && @options[:imported] reason, uri = should_reject?(uri) if reason reason = reject_reason(reason) if @json - autoblock!(uri, reason) if should_autoblock?(reason) Rails.logger.info("Rejected an incoming '#{@json['type']}#{@object && " #{@object['type']}".rstrip}' from #{@json['id']} because #{reason}.") elsif uri Rails.logger.info("Rejected an outgoing request to #{uri} because #{reason}.") |