Hide private post reference notification
This commit is contained in:
parent
642a351369
commit
d257157276
2 changed files with 25 additions and 4 deletions
|
@ -58,11 +58,11 @@ class ProcessReferencesService < BaseService
|
|||
private
|
||||
|
||||
def references
|
||||
@references = @reference_parameters + scan_text!
|
||||
@references ||= @reference_parameters + scan_text!
|
||||
end
|
||||
|
||||
def old_references
|
||||
@old_references = @status.references.pluck(:id)
|
||||
@old_references ||= @status.references.pluck(:id)
|
||||
end
|
||||
|
||||
def added_references
|
||||
|
@ -112,7 +112,7 @@ class ProcessReferencesService < BaseService
|
|||
def create_notifications!
|
||||
return if @added_objects.blank?
|
||||
|
||||
local_reference_objects = @added_objects.filter { |ref| ref.target_status.account.local? }
|
||||
local_reference_objects = @added_objects.filter { |ref| ref.target_status.account.local? && StatusPolicy.new(ref.target_status.account, ref.status).show? }
|
||||
return if local_reference_objects.empty?
|
||||
|
||||
LocalNotificationWorker.push_bulk(local_reference_objects) do |ref|
|
||||
|
|
|
@ -6,8 +6,9 @@ RSpec.describe ProcessReferencesService, type: :service do
|
|||
let(:text) { 'Hello' }
|
||||
let(:account) { Fabricate(:user).account }
|
||||
let(:visibility) { :public }
|
||||
let(:target_status_visibility) { :public }
|
||||
let(:status) { Fabricate(:status, account: account, text: text, visibility: visibility) }
|
||||
let(:target_status) { Fabricate(:status, account: Fabricate(:user).account) }
|
||||
let(:target_status) { Fabricate(:status, account: Fabricate(:user).account, visibility: target_status_visibility) }
|
||||
let(:target_status_uri) { ActivityPub::TagManager.instance.uri_for(target_status) }
|
||||
|
||||
describe 'posting new status' do
|
||||
|
@ -42,6 +43,26 @@ RSpec.describe ProcessReferencesService, type: :service do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when private post' do
|
||||
let(:text) { "Hello RT #{target_status_uri}" }
|
||||
let(:visibility) { :private }
|
||||
|
||||
it 'post status' do
|
||||
expect(subject.size).to eq 1
|
||||
expect(subject.pluck(0)).to include target_status.id
|
||||
expect(subject.pluck(1)).to include 'RT'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when cannot show private post' do
|
||||
let(:text) { "Hello RT #{target_status_uri}" }
|
||||
let(:target_status_visibility) { :private }
|
||||
|
||||
it 'post status' do
|
||||
expect(subject.size).to eq 0
|
||||
end
|
||||
end
|
||||
|
||||
context 'when url only' do
|
||||
let(:text) { "Hello #{target_status_uri}" }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue