Merge branch 'kb_migration' into kb_migration_development

This commit is contained in:
KMY 2023-04-28 14:33:27 +09:00
commit c47f85eddf
3 changed files with 16 additions and 3 deletions

View file

@ -18,7 +18,7 @@ class StatusPolicy < ApplicationPolicy
elsif private?
owned? || following_author? || mention_exists?
else
current_account.nil? || (!author_blocking? && !author_blocking_domain?)
current_account.nil? || (!author_blocking? && !author_blocking_domain? && !server_blocking_domain?)
end
end
@ -99,4 +99,18 @@ class StatusPolicy < ApplicationPolicy
def author
record.account
end
def server_blocking_domain?
@domain_block = DomainBlock.find_by(domain: current_account&.domain)
if @domain_block
(@domain_block.reject_send_not_public_searchability && record.compute_searchability != 'public') ||
(@domain_block.reject_send_unlisted_dissubscribable && record.unlisted_visibility? && record.account.dissubscribable) ||
(@domain_block.reject_send_public_unlisted && record.public_unlisted_visibility?) ||
(@domain_block.reject_send_dissubscribable && record.account.dissubscribable) ||
(@domain_block.reject_send_media && record.with_media?) ||
(@domain_block.reject_send_sensitive && ((record.with_media? && record.sensitive) || record.spoiler_text))
else
false
end
end
end

View file

@ -131,7 +131,6 @@ class FanOutOnWriteService < BaseService
antennas.in_batches do |ans|
ans.each do |antenna|
next if !antenna.enabled?
next if antenna.keywords.any? && !([nil, :public].include?(@status.searchability&.to_sym))
next if antenna.keywords.any? && !antenna.keywords.any? { |keyword| @status.text.include?(keyword) }
next if antenna.exclude_keywords&.any? { |keyword| @status.text.include?(keyword) }
next if antenna.exclude_accounts&.include?(@status.account_id)

View file

@ -998,7 +998,7 @@ ja:
accounts_hint: ローカルアカウントの場合は「@info」、リモートアカウントの場合は「@info@example.com」の形式で指定します。サーバーが認識していないアカウントは保存時に自動的に削除されます。
accounts_raw: 絞り込むアカウント
available: 有効
description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、検索許可が「公開」または明示的に設定されていないもの(検索許可システムに対応していないサーバーからの投稿)、かつ購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。
description: アンテナは、サーバーが認識した全ての公開・ローカル公開投稿のうち、購読を拒否していないすべてのアカウントからの投稿が対象です。検出された投稿は、指定したリストに追加されます。
domains_hint: ドメインとは、アカウントIDやサイトのURLのうち「kmy.blue」「example.com」に該当する部分です
domains_raw: 絞り込むドメイン
exclude_accounts_raw: 除外するアカウント