From 7709d95f00580301aa0c14071b7d57e58926172e Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 19 Aug 2019 11:35:48 +0200 Subject: (lazily) port tootsuite#11298 to monsterfork: Add public blocks to /about/blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add automatic blocklist display in /about/blocks Inspired by https://github.com/Gargron/mastodon.social-misc * Add admin option to set who can see instance blocks * Normalize locales files * Rename “Sandbox” to “Silence” for consistency * Disable /about/blocks when in whitelist mode * Optionally display rationale for domain blocks * Only display domain blocks that have user-facing limitations, and order them * Redesign table of blocked domains to better handle long domain names and rationales * Change domain blocks ordering now that rationales aren't displayed right away * Only show explanation for block severities actually in use * Reword instance block explanations and add disclaimer for public fetch mode --- app/models/domain_block.rb | 1 + app/models/form/admin_settings.rb | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'app/models') diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index 26cec6ae6..1d0b25772 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -29,6 +29,7 @@ class DomainBlock < ApplicationRecord scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } scope :unprocessed, -> { where(processing: true) } + scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)).or(where(reject_unknown: true).or(where(manual_only: true))) } before_save :set_processing diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index c9cd3a87f..08107ee68 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -41,10 +41,8 @@ class Form::AdminSettings always_mark_instance_actors_known werewolf_status spam_check_enabled - mark_known_from_follows - mark_known_from_mentions - mark_known_from_boosts - mark_known_from_favourites + show_domain_blocks + show_domain_blocks_rationale ).freeze BOOLEAN_KEYS = %i( @@ -92,6 +90,8 @@ class Form::AdminSettings validates :site_contact_email, :site_contact_username, presence: true validates :site_contact_username, existing_username: true validates :bootstrap_timeline_accounts, existing_username: { multiple: true } + validates :show_domain_blocks, inclusion: { in: %w(disabled users all) } + validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) } def initialize(_attributes = {}) super -- cgit