Fix own following/followers not showing muted users (#13614)
Fixes #13612
This commit is contained in:
parent
043255a45e
commit
f1e0fa80f6
4 changed files with 48 additions and 2 deletions
|
@ -20,7 +20,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
|
||||||
return [] if hide_results?
|
return [] if hide_results?
|
||||||
|
|
||||||
scope = default_accounts
|
scope = default_accounts
|
||||||
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil?
|
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id
|
||||||
scope.merge(paginated_follows).to_a
|
scope.merge(paginated_follows).to_a
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
|
||||||
return [] if hide_results?
|
return [] if hide_results?
|
||||||
|
|
||||||
scope = default_accounts
|
scope = default_accounts
|
||||||
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil?
|
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id
|
||||||
scope.merge(paginated_follows).to_a
|
scope.merge(paginated_follows).to_a
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowerAccountsController do
|
||||||
expect(body_as_json.size).to eq 1
|
expect(body_as_json.size).to eq 1
|
||||||
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when requesting user is blocked' do
|
||||||
|
before do
|
||||||
|
account.block!(user.account)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'hides results' do
|
||||||
|
get :index, params: { account_id: account.id, limit: 2 }
|
||||||
|
expect(body_as_json.size).to eq 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when requesting user is the account owner' do
|
||||||
|
let(:user) { Fabricate(:user, account: account) }
|
||||||
|
|
||||||
|
it 'returns all accounts, including muted accounts' do
|
||||||
|
user.account.mute!(bob)
|
||||||
|
get :index, params: { account_id: account.id, limit: 2 }
|
||||||
|
|
||||||
|
expect(body_as_json.size).to eq 2
|
||||||
|
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowingAccountsController do
|
||||||
expect(body_as_json.size).to eq 1
|
expect(body_as_json.size).to eq 1
|
||||||
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
expect(body_as_json[0][:id]).to eq alice.id.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when requesting user is blocked' do
|
||||||
|
before do
|
||||||
|
account.block!(user.account)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'hides results' do
|
||||||
|
get :index, params: { account_id: account.id, limit: 2 }
|
||||||
|
expect(body_as_json.size).to eq 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when requesting user is the account owner' do
|
||||||
|
let(:user) { Fabricate(:user, account: account) }
|
||||||
|
|
||||||
|
it 'returns all accounts, including muted accounts' do
|
||||||
|
user.account.mute!(bob)
|
||||||
|
get :index, params: { account_id: account.id, limit: 2 }
|
||||||
|
|
||||||
|
expect(body_as_json.size).to eq 2
|
||||||
|
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue