Fix boosts of local users being filtered in account timelines (#27204)
This commit is contained in:
		
							parent
							
								
									4e55001e65
								
							
						
					
					
						commit
						ceb365c419
					
				| @ -60,8 +60,12 @@ class AccountStatusesFilter | ||||
|       .where(reblog_of_id: nil) | ||||
|       .or( | ||||
|         scope | ||||
|           # This is basically `Status.not_domain_blocked_by_account(current_account)` | ||||
|           # and `Status.not_excluded_by_account(current_account)` but on the | ||||
|           # `reblog` association. Unfortunately, there seem to be no clean way | ||||
|           # to re-use those scopes in our case. | ||||
|           .where(reblog: { accounts: { domain: nil } }).or(scope.where.not(reblog: { accounts: { domain: current_account.excluded_from_timeline_domains } })) | ||||
|           .where.not(reblog: { account_id: current_account.excluded_from_timeline_account_ids }) | ||||
|           .where.not(reblog: { accounts: { domain: current_account.excluded_from_timeline_domains } }) | ||||
|       ) | ||||
|   end | ||||
| 
 | ||||
|  | ||||
| @ -202,7 +202,7 @@ RSpec.describe AccountStatusesFilter do | ||||
|       context 'when blocking a reblogged domain' do | ||||
|         let(:other_account) { Fabricate(:account, domain: 'example.com') } | ||||
|         let(:reblogging_status) { Fabricate(:status, account: other_account) } | ||||
|         let(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) } | ||||
|         let!(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) } | ||||
| 
 | ||||
|         before do | ||||
|           current_account.block_domain!(other_account.domain) | ||||
| @ -213,6 +213,20 @@ RSpec.describe AccountStatusesFilter do | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'when blocking an unrelated domain' do | ||||
|         let(:other_account) { Fabricate(:account, domain: nil) } | ||||
|         let(:reblogging_status) { Fabricate(:status, account: other_account, visibility: 'public') } | ||||
|         let!(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) } | ||||
| 
 | ||||
|         before do | ||||
|           current_account.block_domain!('example.com') | ||||
|         end | ||||
| 
 | ||||
|         it 'returns the reblog from the non-blocked domain' do | ||||
|           expect(subject.results.pluck(:id)).to include(reblog.id) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'when muting a reblogged account' do | ||||
|         let(:reblog) { status_with_reblog!('public') } | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user