mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-20 11:35:29 +01:00
Refactor domain_blocks_controller (#2843)
* Set domain_block by before_action * Cast value with ActiveRecord::Type * Batch update
This commit is contained in:
parent
2d45794956
commit
a0b1951791
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
module Admin
|
module Admin
|
||||||
class DomainBlocksController < BaseController
|
class DomainBlocksController < BaseController
|
||||||
|
before_action :set_domain_block, only: [:show, :destroy]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@domain_blocks = DomainBlock.page(params[:page])
|
@domain_blocks = DomainBlock.page(params[:page])
|
||||||
end
|
end
|
||||||
@ -21,24 +23,25 @@ module Admin
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show; end
|
||||||
@domain_block = DomainBlock.find(params[:id])
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@domain_block = DomainBlock.find(params[:id])
|
|
||||||
UnblockDomainService.new.call(@domain_block, retroactive_unblock?)
|
UnblockDomainService.new.call(@domain_block, retroactive_unblock?)
|
||||||
redirect_to admin_domain_blocks_path, notice: I18n.t('admin.domain_blocks.destroyed_msg')
|
redirect_to admin_domain_blocks_path, notice: I18n.t('admin.domain_blocks.destroyed_msg')
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def set_domain_block
|
||||||
|
@domain_block = DomainBlock.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
def resource_params
|
def resource_params
|
||||||
params.require(:domain_block).permit(:domain, :severity, :reject_media, :retroactive)
|
params.require(:domain_block).permit(:domain, :severity, :reject_media, :retroactive)
|
||||||
end
|
end
|
||||||
|
|
||||||
def retroactive_unblock?
|
def retroactive_unblock?
|
||||||
resource_params[:retroactive] == '1'
|
ActiveRecord::Type.lookup(:boolean).cast(resource_params[:retroactive])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -19,7 +19,7 @@ class BlockDomainService < BaseService
|
|||||||
end
|
end
|
||||||
|
|
||||||
def silence_accounts!
|
def silence_accounts!
|
||||||
blocked_domain_accounts.update_all(silenced: true)
|
blocked_domain_accounts.in_batches.update_all(silenced: true)
|
||||||
clear_media! if domain_block.reject_media?
|
clear_media! if domain_block.reject_media?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -3,10 +3,12 @@
|
|||||||
class UnblockDomainService < BaseService
|
class UnblockDomainService < BaseService
|
||||||
def call(domain_block, retroactive)
|
def call(domain_block, retroactive)
|
||||||
if retroactive
|
if retroactive
|
||||||
|
accounts = Account.where(domain: domain_block.domain).in_batches
|
||||||
|
|
||||||
if domain_block.silence?
|
if domain_block.silence?
|
||||||
Account.where(domain: domain_block.domain).update_all(silenced: false)
|
accounts.update_all(silenced: false)
|
||||||
else
|
else
|
||||||
Account.where(domain: domain_block.domain).update_all(suspended: false)
|
accounts.update_all(suspended: false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user