0
0
Fork 0

Support for import/export of instance-level domain blocks/allows for 4.x w/ additional fixes (#20597)

* Allow import/export of instance-level domain blocks/allows (#1754)

* Allow import/export of instance-level domain blocks/allows.
Fixes #15095

* Pacify circleci

* Address simple code review feedback

* Add headers to exported CSV

* Extract common import/export functionality to
AdminExportControllerConcern

* Add additional fields to instance-blocked domain export

* Address review feedback

* Split instance domain block/allow import/export into separate pages/controllers

* Address code review feedback

* Pacify DeepSource

* Work around Paperclip::HasAttachmentFile for Rails 6

* Fix deprecated API warning in export tests

* Remove after_commit workaround

(cherry picked from commit 94e98864e3)

* Add confirmation page when importing blocked domains (#1773)

* Move glitch-soc-specific strings to glitch-soc-specific locale files

* Add confirmation page when importing blocked domains

(cherry picked from commit b91196f4b7)

* Fix authorization check in domain blocks controller

(cherry picked from commit 7527937758)

* Fix error strings for domain blocks and email-domain blocks

Corrected issue with non-error message used for Mastodon:NotPermittedError in Domain Blocks
Corrected issue Domain Blocks using the Email Domain Blocks message on ActionContoller::ParameterMissing
Corrected issue with Email Domain Blocks using the not_permitted string from "custom emojii's"

* Ran i18n-tasks normalize to address test failure

* Removed unused admin.export_domain_blocks.not_permitted string

Removing unused string as indicated by Check i18n

* Fix tests

(cherry picked from commit 9094c2f52c)

* Fix domain block export not exporting blocks with only media rejection

(cherry picked from commit 26ff48ee48)

* Fix various issues with domain block import

- stop using Paperclip for processing domain allow/block imports
- stop leaving temporary files
- better error handling
- assume CSV files are UTF-8-encoded

(cherry picked from commit cad824d8f501b95377e4f0a957e5a00d517a1902)

Co-authored-by: Levi Bard <taktaktaktaktaktaktaktaktaktak@gmail.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
lenore gilbert 2022-11-17 03:05:09 -07:00 committed by GitHub
parent e7deea62d1
commit c373148b3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 537 additions and 2 deletions

View file

@ -0,0 +1,27 @@
- existing_relationships ||= false
.batch-table__row{ class: [existing_relationships && 'batch-table__row--attention'] }
%label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
= f.check_box :enabled, checked: !existing_relationships
.batch-table__row__content.pending-account
.pending-account__header
%strong
= f.object.domain
= f.hidden_field :domain
= f.hidden_field :severity
= f.hidden_field :reject_media
= f.hidden_field :reject_reports
= f.hidden_field :obfuscate
= f.hidden_field :private_comment
= f.hidden_field :public_comment
%br/
= f.object.policies.map { |policy| t(policy, scope: 'admin.instances.content_policies.policies') }.join(' • ')
- if f.object.public_comment.present?
= f.object.public_comment
- if existing_relationships
= fa_icon 'warning fw'
= t('admin.export_domain_blocks.import.existing_relationships_warning')

View file

@ -0,0 +1,21 @@
- content_for :page_title do
= t('admin.export_domain_blocks.import.title')
%p= t('admin.export_domain_blocks.import.description_html')
- if defined?(@global_private_comment) && @global_private_comment.present?
%p= t('admin.export_domain_blocks.import.private_comment_description_html', comment: @global_private_comment)
= form_for(@form, url: batch_admin_domain_blocks_path) do |f|
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
= f.button safe_join([fa_icon('copy'), t('admin.domain_blocks.import')]), name: :save, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
.batch-table__body
- if @domain_blocks.empty?
= nothing_here 'nothing-here--under-tabs'
- else
= f.simple_fields_for :domain_blocks, @domain_blocks do |ff|
= render 'domain_block', f: ff, existing_relationships: @warning_domains.include?(ff.object.domain)

View file

@ -0,0 +1,10 @@
- content_for :page_title do
= t('.title')
= simple_form_for @import, url: import_admin_export_domain_blocks_path, html: { multipart: true } do |f|
.fields-row
.fields-group.fields-row__column.fields-row__column-6
= f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data'), as: :file
.actions
= f.button :button, t('imports.upload'), type: :submit