Fix nil error in StatusFilter (#7470)

Fix #7462
th-downstream
Eugen Rochko 6 years ago committed by GitHub
parent cffde88361
commit 52a2498f60

@ -74,16 +74,7 @@ module StatusThreadingConcern
statuses = statuses_with_accounts(ids).to_a statuses = statuses_with_accounts(ids).to_a
account_ids = statuses.map(&:account_id).uniq account_ids = statuses.map(&:account_id).uniq
domains = statuses.map(&:account_domain).compact.uniq domains = statuses.map(&:account_domain).compact.uniq
relations = relations_map_for_account(account, account_ids, domains)
relations = if account.present?
{
blocking: Account.blocking_map(account_ids, account.id),
blocked_by: Account.blocked_by_map(account_ids, account.id),
muting: Account.muting_map(account_ids, account.id),
following: Account.following_map(account_ids, account.id),
domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id),
}
end
statuses.reject! { |status| filter_from_context?(status, account, relations) } statuses.reject! { |status| filter_from_context?(status, account, relations) }
@ -91,6 +82,18 @@ module StatusThreadingConcern
statuses.sort_by! { |status| ids.index(status.id) } statuses.sort_by! { |status| ids.index(status.id) }
end end
def relations_map_for_account(account, account_ids, domains)
return {} if account.nil?
{
blocking: Account.blocking_map(account_ids, account.id),
blocked_by: Account.blocked_by_map(account_ids, account.id),
muting: Account.muting_map(account_ids, account.id),
following: Account.following_map(account_ids, account.id),
domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id),
}
end
def statuses_with_accounts(ids) def statuses_with_accounts(ids)
Status.where(id: ids).includes(:account) Status.where(id: ids).includes(:account)
end end

Loading…
Cancel
Save