mirror of https://github.com/Siphonay/mastodon
Fix reblogs privacy (#10302)
* Fix reblogs privacy * Fix Announce processing specs
This commit is contained in:
parent
c92a1cf5c1
commit
5e38ef87a7
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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') }
|
||||
|
|
Loading…
Reference in New Issue