#
class DomainBlock < ApplicationRecord
- enum severity: [:silence, :suspend]
+ enum severity: [:silence, :suspend, :noop]
attr_accessor :retroactive
private
def process_domain_block
+ clear_media! if domain_block.reject_media?
if domain_block.silence?
silence_accounts!
- else
+ elsif domain_block.suspend?
suspend_accounts!
end
end
def silence_accounts!
blocked_domain_accounts.in_batches.update_all(silenced: true)
- clear_media! if domain_block.reject_media?
end
def clear_media!
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :delete do |f|
- = f.input :retroactive,
- as: :boolean,
- wrapper: :with_label,
- label: t(".retroactive.#{@domain_block.severity}"),
- hint: t(:affected_accounts,
- scope: [:admin, :domain_blocks, :show],
- count: @domain_block.accounts_count)
+ - if (@domain_block.noop?)
+ = f.input :retroactive,
+ as: :hidden,
+ input_html: { :value => "0" }
+ - else
+ = f.input :retroactive,
+ as: :boolean,
+ wrapper: :with_label,
+ label: t(".retroactive.#{@domain_block.severity}"),
+ hint: t(:affected_accounts,
+ scope: [:admin, :domain_blocks, :show],
+ count: @domain_block.accounts_count)
.actions
= f.button :button, t('.undo'), type: :submit
create: Create block
hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts.
severity:
- desc_html: "<strong>Silence</strong> will make the account's posts invisible to anyone who isn't following them. <strong>Suspend</strong> will remove all of the account's content, media, and profile data."
+ desc_html: "<strong>Silence</strong> will make the account's posts invisible to anyone who isn't following them. <strong>Suspend</strong> will remove all of the account's content, media, and profile data. Use <strong>None</strong> if you just want to reject media files."
+ noop: None
silence: Silence
suspend: Suspend
title: New domain block
reject_media: Reject media files
reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
severities:
+ noop: None
silence: Silence
suspend: Suspend
severity: Severity