Add reject blurhash to Admin setting

This commit is contained in:
noellabo 2024-02-18 11:24:19 +09:00 committed by Essem
parent 66ce3f9a5e
commit 3a483775bb
No known key found for this signature in database
GPG key ID: 7D497397CC3A2A8C
7 changed files with 20 additions and 0 deletions

View file

@ -14,6 +14,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
else else
create_status create_status
end end
rescue Mastodon::RejectPayload
reject_payload!
end end
private private
@ -83,6 +85,9 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
@params = {} @params = {}
process_status_params process_status_params
raise Mastodon::RejectPayload if MediaAttachment.where(id: @params[:media_attachment_ids]).where(blurhash: Setting.reject_blurhash.split(/\r\n/).filter(&:present?).uniq).present?
process_tags process_tags
process_audience process_audience

View file

@ -46,6 +46,7 @@ class Form::AdminSettings
captcha_enabled captcha_enabled
authorized_fetch authorized_fetch
reject_pattern reject_pattern
reject_blurhash
).freeze ).freeze
INTEGER_KEYS = %i( INTEGER_KEYS = %i(

View file

@ -15,5 +15,8 @@
.fields-group .fields-group
= f.input :reject_pattern, wrapper: :with_block_label, as: :text, label: t('admin.settings.reject_pattern.title'), hint: t('admin.settings.reject_pattern.desc_html'), input_html: { rows: 8 } = f.input :reject_pattern, wrapper: :with_block_label, as: :text, label: t('admin.settings.reject_pattern.title'), hint: t('admin.settings.reject_pattern.desc_html'), input_html: { rows: 8 }
.fields-group
= f.input :reject_blurhash, wrapper: :with_block_label, as: :text, label: t('admin.settings.reject_blurhash.title'), hint: t('admin.settings.reject_blurhash.desc_html'), input_html: { rows: 8 }
.actions .actions
= f.button :button, t('generic.save_changes'), type: :submit = f.button :button, t('generic.save_changes'), type: :submit

View file

@ -778,6 +778,9 @@ en:
approved: Approval required for sign up approved: Approval required for sign up
none: Nobody can sign up none: Nobody can sign up
open: Anyone can sign up open: Anyone can sign up
reject_blurhash:
desc_html: Set a blurhashes to inspect Create Activity media attachments, and refuse Activity if you match
title: Reject blurhash
reject_pattern: reject_pattern:
desc_html: Set a regular expression pattern to inspect Create Activity content, and refuse Activity if you match desc_html: Set a regular expression pattern to inspect Create Activity content, and refuse Activity if you match
title: Reject Pattern title: Reject Pattern

View file

@ -760,6 +760,12 @@ ja:
approved: 登録には承認が必要 approved: 登録には承認が必要
none: 誰にも許可しない none: 誰にも許可しない
open: 誰でも登録可 open: 誰でも登録可
reject_blurhash:
desc_html: Create Activityの添付画像を検査するblurhashを設定し、一致する場合はActivityを拒否します
title: 拒否画像ハッシュ
reject_pattern:
desc_html: Create Activityのcontentを検査する正規表現パターンを設定し、一致する場合はActivityを拒否します
title: 拒否パターン
security: security:
authorized_fetch: 連合サーバーによる署名なしでの情報取得を拒否する authorized_fetch: 連合サーバーによる署名なしでの情報取得を拒否する
authorized_fetch_hint: ほかの連合サーバーから受け付けるリクエストに署名を必須にすることで、ユーザーによるブロックおよびドメインブロック両方の効果をより強力にします。ただし連合の処理コストが増えてパフォーマンス面で不利になるほか、このサーバーから送られた反応が届く範囲が狭まったり、連合における互換性の問題を招く可能性もあります。また、この機能は公開投稿やプロフィールへのアクセスをブロックした相手から完全に遮断できるものではありません。 authorized_fetch_hint: ほかの連合サーバーから受け付けるリクエストに署名を必須にすることで、ユーザーによるブロックおよびドメインブロック両方の効果をより強力にします。ただし連合の処理コストが増えてパフォーマンス面で不利になるほか、このサーバーから送られた反応が届く範囲が狭まったり、連合における互換性の問題を招く可能性もあります。また、この機能は公開投稿やプロフィールへのアクセスをブロックした相手から完全に遮断できるものではありません。

View file

@ -47,6 +47,7 @@ defaults: &defaults
backups_retention_period: 7 backups_retention_period: 7
captcha_enabled: false captcha_enabled: false
reject_pattern: '' reject_pattern: ''
reject_blurhash: ''
development: development:
<<: *defaults <<: *defaults

View file

@ -8,6 +8,7 @@ module Mastodon
class LengthValidationError < ValidationError; end class LengthValidationError < ValidationError; end
class DimensionsValidationError < ValidationError; end class DimensionsValidationError < ValidationError; end
class StreamValidationError < ValidationError; end class StreamValidationError < ValidationError; end
class RejectPayload < ValidationError; end
class RaceConditionError < Error; end class RaceConditionError < Error; end
class RateLimitExceededError < Error; end class RateLimitExceededError < Error; end
class SyntaxError < Error; end class SyntaxError < Error; end