Fix broken notifications for mentions from local moderators in 4.2.11 (#31484)
This commit is contained in:
parent
a02ff33f0e
commit
d675803f07
2 changed files with 12 additions and 1 deletions
|
@ -87,7 +87,7 @@ class NotifyService < BaseService
|
|||
|
||||
def from_staff?
|
||||
sender = @notification.from_account
|
||||
sender.local? && sender.user.present? && sender.user_role&.overrides?(@recipient.user_role) && @sender.user_role&.highlighted? && sender.user_role&.can?(*UserRole::Flags::CATEGORIES[:moderation])
|
||||
sender.local? && sender.user.present? && sender.user_role&.overrides?(@recipient.user_role) && sender.user_role&.highlighted? && sender.user_role&.can?(*UserRole::Flags::CATEGORIES[:moderation].map(&:to_sym))
|
||||
end
|
||||
|
||||
def optional_non_following_and_direct?
|
||||
|
|
|
@ -18,6 +18,17 @@ RSpec.describe NotifyService, type: :service do
|
|||
expect { subject }.to_not change(Notification, :count)
|
||||
end
|
||||
|
||||
context 'when the sender is a local moderator' do
|
||||
let(:sender) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
|
||||
let(:type) { :mention }
|
||||
let(:activity) { Fabricate(:mention, account: recipient, status: Fabricate(:status, account: sender)) }
|
||||
|
||||
it 'does notify when the sender is blocked' do
|
||||
recipient.block!(sender)
|
||||
expect { subject }.to change(Notification, :count).by(1)
|
||||
end
|
||||
end
|
||||
|
||||
it 'does not notify when sender is muted with hide_notifications' do
|
||||
recipient.mute!(sender, notifications: true)
|
||||
expect { subject }.to_not change(Notification, :count)
|
||||
|
|
Loading…
Reference in a new issue