Skip to content
Snippets Groups Projects
Commit 00e9dac1 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Automatically block outgoing notifications from silenced accounts to users

who don't follow them
parent f763e844
No related branches found
No related tags found
No related merge requests found
......@@ -82,12 +82,13 @@ class FeedManager
end
def filter_from_mentions?(status, receiver)
should_filter = receiver.id == status.account_id # Filter if I'm mentioning myself
should_filter ||= receiver.blocking?(status.account) # or it's from someone I blocked
should_filter = receiver.id == status.account_id # Filter if I'm mentioning myself
should_filter ||= receiver.blocking?(status.account) # or it's from someone I blocked
should_filter ||= receiver.blocking?(status.mentions.includes(:account).map(&:account)) # or if it mentions someone I blocked
should_filter ||= (status.account.silenced? && !receiver.following?(status.account)) # of if the account is silenced and I'm not following them
if status.reply? && !status.thread.account.nil? # or it's a reply
should_filter ||= receiver.blocking?(status.thread.account) # to a user I blocked
if status.reply? && !status.thread.account.nil? # or it's a reply
should_filter ||= receiver.blocking?(status.thread.account) # to a user I blocked
end
should_filter
......
......@@ -36,6 +36,7 @@ class NotifyService < BaseService
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}?")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment