diff options
author | ThibG <thib@sitedethib.com> | 2019-03-17 14:54:09 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2019-03-17 14:54:09 +0100 |
commit | 5e38ef87a7b8bac59ffa0d98464086ab8a60a2e1 (patch) | |
tree | eef6fdfe5269ac9bfaca98614342ce5b1bec44ce | |
parent | c92a1cf5c1a499b9941c1526d90ed0445e072850 (diff) |
Fix reblogs privacy (#10302)
* Fix reblogs privacy * Fix Announce processing specs
-rw-r--r-- | app/models/status.rb | 2 | ||||
-rw-r--r-- | spec/lib/activitypub/activity/announce_spec.rb | 1 | ||||
-rw-r--r-- | spec/services/reblog_service_spec.rb | 21 |
3 files changed, 23 insertions, 1 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 571167943..b9479c76b 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -453,8 +453,8 @@ class Status < ApplicationRecord end def set_visibility + self.visibility = reblog.visibility if reblog? && visibility.nil? self.visibility = (account.locked? ? :private : :public) if visibility.nil? - self.visibility = reblog.visibility if reblog? self.sensitive = false if sensitive.nil? end diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index aa58d9e23..926083a4f 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -12,6 +12,7 @@ RSpec.describe ActivityPub::Activity::Announce do type: 'Announce', actor: 'https://example.com/actor', object: object_json, + to: 'http://example.com/followers', }.with_indifferent_access end diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb index 2755da772..9e66c6643 100644 --- a/spec/services/reblog_service_spec.rb +++ b/spec/services/reblog_service_spec.rb @@ -3,6 +3,27 @@ require 'rails_helper' RSpec.describe ReblogService, type: :service do let(:alice) { Fabricate(:account, username: 'alice') } + context 'creates a reblog with appropriate visibility' do + let(:bob) { Fabricate(:account, username: 'bob') } + let(:visibility) { :public } + let(:reblog_visibility) { :public } + let(:status) { Fabricate(:status, account: bob, visibility: visibility) } + + subject { ReblogService.new } + + before do + subject.call(alice, status, visibility: reblog_visibility) + end + + describe 'boosting privately' do + let(:reblog_visibility) { :private } + + it 'reblogs privately' do + expect(status.reblogs.first.visibility).to eq 'private' + end + end + end + context 'OStatus' do let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com') } let(:status) { Fabricate(:status, account: bob, uri: 'tag:example.com;something:something') } |