mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-22 12:58:06 +01:00
Add reject pattern to Admin setting (Ported to Glitch Soc)
# Conflicts: # app/views/admin/settings/shared/_links.html.haml # config/routes/admin.rb
This commit is contained in:
parent
e60d3df9bb
commit
5255bd08e0
5 changed files with 29 additions and 1 deletions
|
@ -46,8 +46,12 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||
)
|
||||
end
|
||||
|
||||
def reject_pattern?
|
||||
Setting.reject_pattern.present? && @object['content']&.match?(Setting.reject_pattern)
|
||||
end
|
||||
|
||||
def create_status
|
||||
return reject_payload! if unsupported_object_type? || non_matching_uri_hosts?(@account.uri, object_uri) || tombstone_exists? || !related_to_local_activity?
|
||||
return reject_payload! if unsupported_object_type? || non_matching_uri_hosts?(@account.uri, object_uri) || tombstone_exists? || !related_to_local_activity? || reject_pattern?
|
||||
|
||||
with_redis_lock("create:#{object_uri}") do
|
||||
return if delete_arrived_first?(object_uri) || poll_vote?
|
||||
|
|
|
@ -45,6 +45,7 @@ class Form::AdminSettings
|
|||
status_page_url
|
||||
captcha_enabled
|
||||
authorized_fetch
|
||||
reject_pattern
|
||||
).freeze
|
||||
|
||||
INTEGER_KEYS = %i(
|
||||
|
@ -95,6 +96,7 @@ class Form::AdminSettings
|
|||
validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) }
|
||||
validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) }
|
||||
validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) }
|
||||
validates :reject_pattern, regexp_syntax: true, if: -> { defined?(@reject_pattern) }
|
||||
validates :status_page_url, url: true, allow_blank: true
|
||||
validate :validate_site_uploads
|
||||
|
||||
|
|
13
app/validators/regexp_syntax_validator.rb
Normal file
13
app/validators/regexp_syntax_validator.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RegexpSyntaxValidator < ActiveModel::EachValidator
|
||||
def validate_each(record, attribute, value)
|
||||
return if value.blank?
|
||||
|
||||
begin
|
||||
Regexp.compile(value)
|
||||
rescue RegexpError => e
|
||||
record.errors.add(attribute, I18n.t('applications.invalid_regexp', message: e.message))
|
||||
end
|
||||
end
|
||||
end
|
|
@ -766,6 +766,10 @@ en:
|
|||
all: To everyone
|
||||
disabled: To no one
|
||||
users: To logged-in local users
|
||||
others:
|
||||
activitypub: ActivityPub
|
||||
preamble: Other settings, including customizing behavior
|
||||
title: Other settings
|
||||
registrations:
|
||||
preamble: Control who can create an account on your server.
|
||||
title: Registrations
|
||||
|
@ -774,6 +778,9 @@ en:
|
|||
approved: Approval required for sign up
|
||||
none: Nobody can sign up
|
||||
open: Anyone can sign up
|
||||
reject_pattern:
|
||||
desc_html: Set a regular expression pattern to inspect Create Activity content, and refuse Activity if you match
|
||||
title: Reject Pattern
|
||||
security:
|
||||
authorized_fetch: Require authentication from federated servers
|
||||
authorized_fetch_hint: Requiring authentication from federated servers enables stricter enforcement of both user-level and server-level blocks. However, this comes at the cost of a performance penalty, reduces the reach of your replies, and may introduce compatibility issues with some federated services. In addition, this will not prevent dedicated actors from fetching your public posts and accounts.
|
||||
|
@ -1029,6 +1036,7 @@ en:
|
|||
applications:
|
||||
created: Application successfully created
|
||||
destroyed: Application successfully deleted
|
||||
invalid_regexp: "The provided Regexp is invalid: %{message}"
|
||||
logout: Logout
|
||||
regenerate_token: Regenerate access token
|
||||
token_regenerated: Access token successfully regenerated
|
||||
|
|
|
@ -46,6 +46,7 @@ defaults: &defaults
|
|||
require_invite_text: false
|
||||
backups_retention_period: 7
|
||||
captcha_enabled: false
|
||||
reject_pattern: ''
|
||||
|
||||
development:
|
||||
<<: *defaults
|
||||
|
|
Loading…
Reference in a new issue