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
|
end
|
||||||
|
|
||||||
def set_visibility
|
def set_visibility
|
||||||
|
self.visibility = reblog.visibility if reblog? && visibility.nil?
|
||||||
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
|
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
|
||||||
self.visibility = reblog.visibility if reblog?
|
|
||||||
self.sensitive = false if sensitive.nil?
|
self.sensitive = false if sensitive.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ RSpec.describe ActivityPub::Activity::Announce do
|
||||||
type: 'Announce',
|
type: 'Announce',
|
||||||
actor: 'https://example.com/actor',
|
actor: 'https://example.com/actor',
|
||||||
object: object_json,
|
object: object_json,
|
||||||
|
to: 'http://example.com/followers',
|
||||||
}.with_indifferent_access
|
}.with_indifferent_access
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,27 @@ require 'rails_helper'
|
||||||
RSpec.describe ReblogService, type: :service do
|
RSpec.describe ReblogService, type: :service do
|
||||||
let(:alice) { Fabricate(:account, username: 'alice') }
|
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
|
context 'OStatus' do
|
||||||
let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com') }
|
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') }
|
let(:status) { Fabricate(:status, account: bob, uri: 'tag:example.com;something:something') }
|
||||||
|
|
Reference in New Issue