diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-12-06 18:03:30 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-12-06 18:03:30 +0100 |
commit | f406e01fcf7d69045cf3ad8ea8dea51acd85535b (patch) | |
tree | b1b2c5ac8c44d3b3f4a69e05a707ce641fc4a48a /app/services | |
parent | 2488162733df7d940e1cb26e5ece534c1078f4c8 (diff) |
Add filters for suspended accounts
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/follow_service.rb | 2 | ||||
-rw-r--r-- | app/services/notify_service.rb | 14 |
2 files changed, 8 insertions, 8 deletions
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 |