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
|
private
|
||||||
|
|
||||||
def references
|
def references
|
||||||
@references = @reference_parameters + scan_text!
|
@references ||= @reference_parameters + scan_text!
|
||||||
end
|
end
|
||||||
|
|
||||||
def old_references
|
def old_references
|
||||||
@old_references = @status.references.pluck(:id)
|
@old_references ||= @status.references.pluck(:id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def added_references
|
def added_references
|
||||||
|
@ -112,7 +112,7 @@ class ProcessReferencesService < BaseService
|
||||||
def create_notifications!
|
def create_notifications!
|
||||||
return if @added_objects.blank?
|
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?
|
return if local_reference_objects.empty?
|
||||||
|
|
||||||
LocalNotificationWorker.push_bulk(local_reference_objects) do |ref|
|
LocalNotificationWorker.push_bulk(local_reference_objects) do |ref|
|
||||||
|
|
|
@ -6,8 +6,9 @@ RSpec.describe ProcessReferencesService, type: :service do
|
||||||
let(:text) { 'Hello' }
|
let(:text) { 'Hello' }
|
||||||
let(:account) { Fabricate(:user).account }
|
let(:account) { Fabricate(:user).account }
|
||||||
let(:visibility) { :public }
|
let(:visibility) { :public }
|
||||||
|
let(:target_status_visibility) { :public }
|
||||||
let(:status) { Fabricate(:status, account: account, text: text, visibility: visibility) }
|
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) }
|
let(:target_status_uri) { ActivityPub::TagManager.instance.uri_for(target_status) }
|
||||||
|
|
||||||
describe 'posting new status' do
|
describe 'posting new status' do
|
||||||
|
@ -42,6 +43,26 @@ RSpec.describe ProcessReferencesService, type: :service do
|
||||||
end
|
end
|
||||||
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
|
context 'when url only' do
|
||||||
let(:text) { "Hello #{target_status_uri}" }
|
let(:text) { "Hello #{target_status_uri}" }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue