Skip to content

Commit e96e64e

Browse files
ClearlyClaireGargron
authored andcommitted
Fix reblogs privacy (mastodon#10302)
* Fix reblogs privacy * Fix Announce processing specs
1 parent 06b3dac commit e96e64e

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

app/models/status.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,8 +453,8 @@ def set_poll_id
453453
end
454454

455455
def set_visibility
456+
self.visibility = reblog.visibility if reblog? && visibility.nil?
456457
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
457-
self.visibility = reblog.visibility if reblog?
458458
self.sensitive = false if sensitive.nil?
459459
end
460460

spec/lib/activitypub/activity/announce_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
type: 'Announce',
1313
actor: 'https://example.com/actor',
1414
object: object_json,
15+
to: 'http://example.com/followers',
1516
}.with_indifferent_access
1617
end
1718

spec/services/reblog_service_spec.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,27 @@
33
RSpec.describe ReblogService, type: :service do
44
let(:alice) { Fabricate(:account, username: 'alice') }
55

6+
context 'creates a reblog with appropriate visibility' do
7+
let(:bob) { Fabricate(:account, username: 'bob') }
8+
let(:visibility) { :public }
9+
let(:reblog_visibility) { :public }
10+
let(:status) { Fabricate(:status, account: bob, visibility: visibility) }
11+
12+
subject { ReblogService.new }
13+
14+
before do
15+
subject.call(alice, status, visibility: reblog_visibility)
16+
end
17+
18+
describe 'boosting privately' do
19+
let(:reblog_visibility) { :private }
20+
21+
it 'reblogs privately' do
22+
expect(status.reblogs.first.visibility).to eq 'private'
23+
end
24+
end
25+
end
26+
627
context 'OStatus' do
728
let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com') }
829
let(:status) { Fabricate(:status, account: bob, uri: 'tag:example.com;something:something') }

0 commit comments

Comments
 (0)