Remove: #372 削除予定のドメインブロック項目をいったん削除 (#444)

* Remove: #372 削除予定のドメインブロック項目をいったん削除

* Fix test
This commit is contained in:
KMY(雪あすか) 2024-01-10 19:04:49 +09:00 committed by GitHub
parent dc73c30d2d
commit 92a16218c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 30 additions and 91 deletions

View file

@ -88,17 +88,17 @@ module Admin
end
def update_params
params.require(:domain_block).permit(:severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_not_public_searchability, :reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media, :reject_send_sensitive, :reject_hashtag,
params.require(:domain_block).permit(:severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_media, :reject_send_sensitive, :reject_hashtag,
:reject_straight_follow, :reject_new_follow, :reject_friend, :detect_invalid_subscription, :reject_reports, :private_comment, :public_comment, :obfuscate, :hidden)
end
def resource_params
params.require(:domain_block).permit(:domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_not_public_searchability, :reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media, :reject_send_sensitive, :reject_hashtag,
params.require(:domain_block).permit(:domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_media, :reject_send_sensitive, :reject_hashtag,
:reject_straight_follow, :reject_new_follow, :reject_friend, :detect_invalid_subscription, :reject_reports, :private_comment, :public_comment, :obfuscate, :hidden)
end
def form_domain_block_batch_params
params.require(:form_domain_block_batch).permit(domain_blocks_attributes: [:enabled, :domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_not_public_searchability, :reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media,
params.require(:form_domain_block_batch).permit(domain_blocks_attributes: [:enabled, :domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_media,
:reject_send_sensitive, :reject_hashtag, :reject_straight_follow, :reject_new_follow, :reject_friend, :detect_invalid_subscription, :reject_reports, :private_comment, :public_comment, :obfuscate, :hidden])
end

View file

@ -69,7 +69,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
end
def domain_block_params
params.permit(:severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_reports, :reject_send_not_public_searchability, :reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media, :reject_send_sensitive, :reject_hashtag, :reject_straight_follow,
params.permit(:severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_reports, :reject_send_media, :reject_send_sensitive, :reject_hashtag, :reject_straight_follow,
:reject_new_follow, :reject_friend, :detect_invalid_subscription, :private_comment, :public_comment, :obfuscate, :hidden)
end
@ -102,7 +102,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
end
def resource_params
params.permit(:domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_not_public_searchability, :reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media, :reject_send_sensitive, :reject_hashtag, :reject_straight_follow,
params.permit(:domain, :severity, :reject_media, :reject_favourite, :reject_reply, :reject_reply_exclude_followers, :reject_send_media, :reject_send_sensitive, :reject_hashtag, :reject_straight_follow,
:reject_new_follow, :reject_friend, :detect_invalid_subscription, :reject_reports, :private_comment, :public_comment, :obfuscate, :hidden)
end
end

View file

@ -29,9 +29,8 @@ class AccountStatusesFilter
available_searchabilities = [:public, :public_unlisted, :unlisted, :private, :direct, :limited, nil]
available_visibilities = [:public, :public_unlisted, :login, :unlisted, :private, :direct, :limited]
available_searchabilities = [:public] if domain_block&.reject_send_not_public_searchability
available_visibilities -= [:public_unlisted] if domain_block&.reject_send_public_unlisted || (domain_block&.detect_invalid_subscription && @account.user&.setting_reject_public_unlisted_subscription)
available_visibilities -= [:unlisted] if domain_block&.detect_invalid_subscription && @account.user&.setting_reject_unlisted_subscription
available_visibilities -= [:public_unlisted] if (domain_block&.detect_invalid_subscription || misskey_software?) && @account.user&.setting_reject_public_unlisted_subscription
available_visibilities -= [:unlisted] if (domain_block&.detect_invalid_subscription || misskey_software?) && @account.user&.setting_reject_unlisted_subscription
available_visibilities -= [:login] if current_account.nil?
scope.merge!(scope.where(spoiler_text: ['', nil])) if domain_block&.reject_send_sensitive
@ -46,7 +45,7 @@ class AccountStatusesFilter
def initial_scope
return Status.none if account.unavailable?
if (domain_block&.reject_send_dissubscribable && !@account.all_subscribable?) || domain_block&.reject_send_media || blocked?
if domain_block&.reject_send_media || blocked?
Status.none
elsif anonymous?
account.statuses.where(visibility: %i(public unlisted public_unlisted))
@ -154,6 +153,21 @@ class AccountStatusesFilter
end
def domain_block
@domain_block = DomainBlock.find_by(domain: @account&.domain)
return nil if @account.nil? || @account.local?
@domain_block = DomainBlock.find_by(domain: @account.domain)
end
def misskey_software?
return false if @account.nil? || @account.local?
return false if instance_info.nil?
%w(misskey cherrypick).include?(instance_info.software)
end
def instance_info
return @instance_info if defined?(@instance_info)
@instance_info = InstanceInfo.find_by(domain: @account.domain)
end
end

View file

@ -195,9 +195,6 @@ class StatusReachFinder
[]
else
blocks = DomainBlock.where(domain: nil)
blocks = blocks.or(DomainBlock.where(reject_send_not_public_searchability: true)) if status.compute_searchability != 'public'
blocks = blocks.or(DomainBlock.where(reject_send_public_unlisted: true)) if status.public_unlisted_visibility?
blocks = blocks.or(DomainBlock.where(reject_send_dissubscribable: true)) unless status.account.all_subscribable?
blocks = blocks.or(DomainBlock.where(reject_send_media: true)) if status.with_media?
blocks = blocks.or(DomainBlock.where(reject_send_sensitive: true)) if (status.with_media? && status.sensitive) || status.spoiler_text?
blocks.pluck(:domain).uniq

View file

@ -69,9 +69,6 @@ class DomainBlock < ApplicationRecord
reject_favourite? ? :reject_favourite : nil,
reject_reply? ? :reject_reply : nil,
reject_reply_exclude_followers? ? :reject_reply_exclude_followers : nil,
reject_send_not_public_searchability? ? :reject_send_not_public_searchability : nil,
reject_send_public_unlisted? ? :reject_send_public_unlisted : nil,
reject_send_dissubscribable? ? :reject_send_dissubscribable : nil,
reject_send_media? ? :reject_send_media : nil,
reject_send_sensitive? ? :reject_send_sensitive : nil,
reject_hashtag? ? :reject_hashtag : nil,

View file

@ -147,9 +147,6 @@ class StatusPolicy < ApplicationPolicy
(@domain_block.detect_invalid_subscription && status.public_unlisted_visibility? && status.account.user&.setting_reject_public_unlisted_subscription) ||
(@domain_block.detect_invalid_subscription && status.public_visibility? && status.account.user&.setting_reject_unlisted_subscription)
else
(@domain_block.reject_send_not_public_searchability && status.compute_searchability != 'public') ||
(@domain_block.reject_send_public_unlisted && status.public_unlisted_visibility?) ||
(@domain_block.reject_send_dissubscribable && !status.account.all_subscribable?) ||
(@domain_block.detect_invalid_subscription && status.public_unlisted_visibility? && status.account.user&.setting_reject_public_unlisted_subscription) ||
(@domain_block.detect_invalid_subscription && status.public_visibility? && status.account.user&.setting_reject_unlisted_subscription) ||
(@domain_block.reject_send_media && status.with_media?) ||

View file

@ -3,8 +3,8 @@
class REST::Admin::DomainBlockSerializer < ActiveModel::Serializer
attributes :id, :domain, :created_at, :severity,
:reject_media, :reject_favourite, :reject_reply, :reject_reports,
:reject_send_not_public_searchability, :reject_reply_exclude_followers,
:reject_send_public_unlisted, :reject_send_dissubscribable, :reject_send_media, :reject_send_sensitive,
:reject_reply_exclude_followers,
:reject_send_media, :reject_send_sensitive,
:reject_hashtag, :reject_straight_follow, :reject_new_follow, :reject_friend, :detect_invalid_subscription,
:private_comment, :public_comment, :obfuscate

View file

@ -23,20 +23,11 @@
%h4= I18n.t('admin.domain_blocks.headers.invalid_privacy')
.fields-group
= f.input :reject_send_not_public_searchability, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_send_not_public_searchability'), hint: I18n.t('admin.domain_blocks.reject_send_not_public_searchability_hint')
.fields-group
= f.input :reject_send_dissubscribable, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_send_dissubscribable'), hint: I18n.t('admin.domain_blocks.reject_send_dissubscribable_hint')
.fields-group
= f.input :detect_invalid_subscription, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.detect_invalid_subscription'), hint: I18n.t('admin.domain_blocks.detect_invalid_subscription_hint')
%h4= I18n.t('admin.domain_blocks.headers.disagreement')
.fields-group
= f.input :reject_send_public_unlisted, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_send_public_unlisted'), hint: I18n.t('admin.domain_blocks.reject_send_public_unlisted_hint')
.fields-group
= f.input :reject_send_media, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_send_media'), hint: I18n.t('admin.domain_blocks.reject_send_media_hint')

View file

@ -13,9 +13,6 @@
= f.hidden_field :reject_favourite
= f.hidden_field :reject_reply
= f.hidden_field :reject_reply_exclude_followers
= f.hidden_field :reject_send_not_public_searchability
= f.hidden_field :reject_send_public_unlisted
= f.hidden_field :reject_send_dissubscribable
= f.hidden_field :reject_send_media
= f.hidden_field :reject_send_sensitive
= f.hidden_field :reject_hashtag

View file

@ -454,14 +454,8 @@ en:
reject_reply_exclude_followers_hint: Reject replies exclude followers in the future
reject_reports: Reject reports
reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
reject_send_dissubscribable: 購読拒否アカウントの投稿を配送しない
reject_send_dissubscribable_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_media: 画像付き投稿を配送しない
reject_send_media_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_not_public_searchability: 検索許可が「誰でも」でない投稿を配送しない
reject_send_not_public_searchability_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_public_unlisted: ローカル公開投稿を配送しない
reject_send_public_unlisted_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_sensitive: センシティブな投稿を配送しない
reject_send_sensitive_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_unlisted_dissubscribable: 購読拒否アカウントの未収載投稿を配送しない

View file

@ -449,14 +449,8 @@ ja:
reject_reply_exclude_followers_hint: 今後のリプライを拒否します。停止とは無関係です
reject_reports: 通報を拒否
reject_reports_hint: このドメインからの通報をすべて無視します。停止とは無関係です
reject_send_dissubscribable: 購読拒否アカウントの投稿を配送しない
reject_send_dissubscribable_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_media: 画像付き投稿を配送しない
reject_send_media_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_not_public_searchability: 検索許可が「誰でも」でない投稿を配送しない
reject_send_not_public_searchability_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_public_unlisted: ローカル公開投稿を配送しない
reject_send_public_unlisted_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_sensitive: センシティブな投稿を配送しない
reject_send_sensitive_hint: 相手サーバーからのフェッチは防げません。停止とは無関係です
reject_send_unlisted_dissubscribable: 購読拒否アカウントの未収載投稿を配送しない
@ -568,10 +562,7 @@ ja:
reject_reply: リプライを拒否
reject_reply_exclude_followers: フォロー相手以外からのリプライを拒否
reject_reports: 通報を拒否
reject_send_dissubscribable: 購読拒否投稿配送なし
reject_send_media: メディア付き投稿配送なし
reject_send_not_public_searchability: 検索許可全て投稿配送なし
reject_send_public_unlisted: ローカル公開投稿配送なし
reject_send_sensitive: センシティブ投稿配送なし
reject_send_unlisted_dissubscribable: 購読拒否未収載投稿配送なし
reject_straight_follow: フォローを制限

View file

@ -385,35 +385,6 @@ describe StatusReachFinder do
let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', protocol: :activitypub, uri: 'https://example.com/', inbox_url: 'https://example.com/inbox') }
let(:tom) { Fabricate(:account, username: 'tom', domain: 'tom.com', protocol: :activitypub, uri: 'https://tom.com/', inbox_url: 'https://tom.com/inbox') }
context 'when reject_send_not_public_searchability' do
let(:properties) { { reject_send_not_public_searchability: true } }
let(:searchability) { :private }
it 'does not include the inbox of blocked domain' do
expect(subject.inboxes).to_not include 'https://example.com/inbox'
expect(subject.inboxes).to include 'https://tom.com/inbox'
end
end
context 'when reject_send_public_unlisted' do
let(:properties) { { reject_send_public_unlisted: true } }
let(:visibility) { :public_unlisted }
it 'does not include the inbox of blocked domain' do
expect(subject.inboxes).to_not include 'https://example.com/inbox'
expect(subject.inboxes).to include 'https://tom.com/inbox'
end
context 'when reject_send_dissubscribable' do
let(:properties) { { reject_send_dissubscribable: true } }
let(:dissubscribable) { true }
it 'does not include the inbox of blocked domain' do
expect(subject.inboxes).to_not include 'https://example.com/inbox'
expect(subject.inboxes).to include 'https://tom.com/inbox'
end
end
context 'when reject_send_sensitive' do
let(:properties) { { reject_send_sensitive: true } }
let(:spoiler_text) { 'CW' }
@ -425,7 +396,6 @@ describe StatusReachFinder do
end
end
end
end
describe '#inboxes_for_friend and distributables' do
subject { described_class.new(status).inboxes_for_friend }

View file

@ -62,10 +62,7 @@ RSpec.describe 'Domain Blocks' do
reject_new_follow: domain_block.reject_new_follow,
reject_reply: domain_block.reject_reply,
reject_reply_exclude_followers: domain_block.reject_reply_exclude_followers,
reject_send_dissubscribable: domain_block.reject_send_dissubscribable,
reject_send_media: domain_block.reject_send_media,
reject_send_not_public_searchability: domain_block.reject_send_not_public_searchability,
reject_send_public_unlisted: domain_block.reject_send_public_unlisted,
reject_send_sensitive: domain_block.reject_send_sensitive,
reject_straight_follow: domain_block.reject_straight_follow,
reject_friend: domain_block.reject_friend,
@ -115,10 +112,7 @@ RSpec.describe 'Domain Blocks' do
reject_new_follow: domain_block.reject_new_follow,
reject_reply: domain_block.reject_reply,
reject_reply_exclude_followers: domain_block.reject_reply_exclude_followers,
reject_send_dissubscribable: domain_block.reject_send_dissubscribable,
reject_send_media: domain_block.reject_send_media,
reject_send_not_public_searchability: domain_block.reject_send_not_public_searchability,
reject_send_public_unlisted: domain_block.reject_send_public_unlisted,
reject_send_sensitive: domain_block.reject_send_sensitive,
reject_straight_follow: domain_block.reject_straight_follow,
reject_friend: domain_block.reject_friend,
@ -150,10 +144,7 @@ RSpec.describe 'Domain Blocks' do
reject_new_follow: domain_block.reject_new_follow,
reject_reply: domain_block.reject_reply,
reject_reply_exclude_followers: domain_block.reject_reply_exclude_followers,
reject_send_dissubscribable: domain_block.reject_send_dissubscribable,
reject_send_media: domain_block.reject_send_media,
reject_send_not_public_searchability: domain_block.reject_send_not_public_searchability,
reject_send_public_unlisted: domain_block.reject_send_public_unlisted,
reject_send_sensitive: domain_block.reject_send_sensitive,
reject_straight_follow: domain_block.reject_straight_follow,
reject_friend: domain_block.reject_friend,