Make file attachment on MediaAttachment optional (#1865)
Create MediaAttachment but without actual file download when domain is blocked with reject_media set to true Clean up old media files when creating a new domain block with reject_media set to true Return remote_url in media attachments API if local file is not present Undo domain block action in admin UI Ability to enable reject_media from admin UI
This commit is contained in:
parent
8a58942c80
commit
5d710b1139
14 changed files with 106 additions and 18 deletions
|
@ -3,12 +3,34 @@
|
|||
class BlockDomainService < BaseService
|
||||
def call(domain_block)
|
||||
if domain_block.silence?
|
||||
Account.where(domain: domain_block.domain).update_all(silenced: true)
|
||||
silence_accounts!(domain_block.domain)
|
||||
clear_media!(domain_block.domain) if domain_block.reject_media?
|
||||
else
|
||||
Account.where(domain: domain_block.domain).find_each do |account|
|
||||
account.subscription(api_subscription_url(account.id)).unsubscribe if account.subscribed?
|
||||
SuspendAccountService.new.call(account)
|
||||
end
|
||||
suspend_accounts!(domain_block.domain)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def silence_accounts!(domain)
|
||||
Account.where(domain: domain).update_all(silenced: true)
|
||||
end
|
||||
|
||||
def clear_media!(domain)
|
||||
Account.where(domain: domain).find_each do |account|
|
||||
account.avatar.destroy
|
||||
account.header.destroy
|
||||
end
|
||||
|
||||
MediaAttachment.where(account: Account.where(domain: domain)).find_each do |attachment|
|
||||
attachment.file.destroy
|
||||
end
|
||||
end
|
||||
|
||||
def suspend_accounts!(domain)
|
||||
Account.where(domain: domain).where(suspended: false).find_each do |account|
|
||||
account.subscription(api_subscription_url(account.id)).unsubscribe if account.subscribed?
|
||||
SuspendAccountService.new.call(account)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue