From f406e01fcf7d69045cf3ad8ea8dea51acd85535b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 6 Dec 2016 18:03:30 +0100 Subject: Add filters for suspended accounts --- app/services/follow_service.rb | 2 +- app/services/notify_service.rb | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'app/services') diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb index 09fa295e3..423b833cf 100644 --- a/app/services/follow_service.rb +++ b/app/services/follow_service.rb @@ -7,7 +7,7 @@ class FollowService < BaseService def call(source_account, uri) target_account = follow_remote_account_service.call(uri) - raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id + raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended? follow = source_account.follow!(target_account) diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index ab76e2a6b..8263c4376 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -33,13 +33,13 @@ class NotifyService < BaseService end def blocked? - blocked = false - blocked ||= @recipient.id == @notification.from_account.id - blocked ||= @recipient.blocking?(@notification.from_account) - blocked ||= (@notification.from_account.silenced? && !@recipient.following?(@notification.from_account)) - blocked ||= (@recipient.user.settings(:interactions).must_be_follower && !@notification.from_account.following?(@recipient)) - blocked ||= (@recipient.user.settings(:interactions).must_be_following && !@recipient.following?(@notification.from_account)) - blocked ||= send("blocked_#{@notification.type}?") + blocked = @recipient.suspended? # Skip if the recipient account is suspended anyway + blocked ||= @recipient.id == @notification.from_account.id # Skip for interactions with self + blocked ||= @recipient.blocking?(@notification.from_account) # Skip for blocked accounts + blocked ||= (@notification.from_account.silenced? && !@recipient.following?(@notification.from_account)) # Hellban + blocked ||= (@recipient.user.settings(:interactions).must_be_follower && !@notification.from_account.following?(@recipient)) # Options + blocked ||= (@recipient.user.settings(:interactions).must_be_following && !@recipient.following?(@notification.from_account)) # Options + blocked ||= send("blocked_#{@notification.type}?") # Type-dependent filters blocked end -- cgit