mirror of
https://github.com/mastodon/mastodon.git
synced 2025-02-06 06:55:04 +00:00
Change notifications from moderators to not be filtered (#33654)
Some checks failed
Bundler Audit / security (push) Waiting to run
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
Haml Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Crowdin / Upload translations / upload-translations (push) Has been cancelled
CSS Linting / lint (push) Has been cancelled
Some checks failed
Bundler Audit / security (push) Waiting to run
Check i18n / check-i18n (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
Haml Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / Libvips tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.2) (push) Blocked by required conditions
Ruby Testing / Libvips tests (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Crowdin / Upload translations / upload-translations (push) Has been cancelled
CSS Linting / lint (push) Has been cancelled
This commit is contained in:
parent
11786f1114
commit
3dcf5e12b1
|
@ -34,6 +34,7 @@ class NotifyService < BaseService
|
||||||
@sender = notification.from_account
|
@sender = notification.from_account
|
||||||
@notification = notification
|
@notification = notification
|
||||||
@policy = NotificationPolicy.find_or_initialize_by(account: @recipient)
|
@policy = NotificationPolicy.find_or_initialize_by(account: @recipient)
|
||||||
|
@from_staff = @sender.local? && @sender.user.present? && @sender.user_role&.bypass_block?(@recipient.user_role)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -63,6 +64,14 @@ class NotifyService < BaseService
|
||||||
@sender.silenced? && not_following?
|
@sender.silenced? && not_following?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def message?
|
||||||
|
@notification.type == :mention
|
||||||
|
end
|
||||||
|
|
||||||
|
def from_staff?
|
||||||
|
@from_staff
|
||||||
|
end
|
||||||
|
|
||||||
def private_mention_not_in_response?
|
def private_mention_not_in_response?
|
||||||
@notification.type == :mention && @notification.target_status.direct_visibility? && !response_to_recipient?
|
@notification.type == :mention && @notification.target_status.direct_visibility? && !response_to_recipient?
|
||||||
end
|
end
|
||||||
|
@ -129,14 +138,6 @@ class NotifyService < BaseService
|
||||||
FeedManager.instance.filter?(:mentions, @notification.target_status, @recipient)
|
FeedManager.instance.filter?(:mentions, @notification.target_status, @recipient)
|
||||||
end
|
end
|
||||||
|
|
||||||
def message?
|
|
||||||
@notification.type == :mention
|
|
||||||
end
|
|
||||||
|
|
||||||
def from_staff?
|
|
||||||
@sender.local? && @sender.user.present? && @sender.user_role&.bypass_block?(@recipient.user_role)
|
|
||||||
end
|
|
||||||
|
|
||||||
def from_self?
|
def from_self?
|
||||||
@recipient.id == @sender.id
|
@recipient.id == @sender.id
|
||||||
end
|
end
|
||||||
|
@ -174,6 +175,7 @@ class NotifyService < BaseService
|
||||||
def filter?
|
def filter?
|
||||||
return false unless filterable_type?
|
return false unless filterable_type?
|
||||||
return false if override_for_sender?
|
return false if override_for_sender?
|
||||||
|
return false if message? && from_staff?
|
||||||
|
|
||||||
filtered_by_limited_accounts_policy? ||
|
filtered_by_limited_accounts_policy? ||
|
||||||
filtered_by_not_following_policy? ||
|
filtered_by_not_following_policy? ||
|
||||||
|
|
|
@ -319,6 +319,16 @@ RSpec.describe NotifyService do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when sender is a moderator' do
|
||||||
|
let(:sender_role) { Fabricate(:user_role, highlighted: true, permissions: UserRole::FLAGS[:manage_users]) }
|
||||||
|
let(:sender) { Fabricate(:user, role: sender_role).account }
|
||||||
|
let(:activity) { Fabricate(:mention, status: Fabricate(:status, account: sender)) }
|
||||||
|
|
||||||
|
it 'returns false' do
|
||||||
|
expect(subject.filter?).to be false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when sender is followed by recipient' do
|
context 'when sender is followed by recipient' do
|
||||||
before do
|
before do
|
||||||
notification.account.follow!(notification.from_account)
|
notification.account.follow!(notification.from_account)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user