diff options
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/after_block_domain_from_account_service.rb | 2 | ||||
-rw-r--r-- | app/services/after_unallow_domain_service.rb | 9 | ||||
-rw-r--r-- | app/services/unallow_domain_service.rb | 13 |
3 files changed, 20 insertions, 4 deletions
diff --git a/app/services/after_block_domain_from_account_service.rb b/app/services/after_block_domain_from_account_service.rb index f50bde261..89d007c1c 100644 --- a/app/services/after_block_domain_from_account_service.rb +++ b/app/services/after_block_domain_from_account_service.rb @@ -19,7 +19,7 @@ class AfterBlockDomainFromAccountService < BaseService private def remove_follows! - @account.active_relationships.where(account: Account.where(domain: @domain)).includes(:target_account).reorder(nil).find_each do |follow| + @account.active_relationships.where(target_account: Account.where(domain: @domain)).includes(:target_account).reorder(nil).find_each do |follow| UnfollowService.new.call(@account, follow.target_account) end end diff --git a/app/services/after_unallow_domain_service.rb b/app/services/after_unallow_domain_service.rb new file mode 100644 index 000000000..ccd0b8ae9 --- /dev/null +++ b/app/services/after_unallow_domain_service.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AfterUnallowDomainService < BaseService + def call(domain) + Account.where(domain: domain).find_each do |account| + SuspendAccountService.new.call(account, reserve_username: false) + end + end +end diff --git a/app/services/unallow_domain_service.rb b/app/services/unallow_domain_service.rb index bd1ad328d..fc5260761 100644 --- a/app/services/unallow_domain_service.rb +++ b/app/services/unallow_domain_service.rb @@ -1,11 +1,18 @@ # frozen_string_literal: true class UnallowDomainService < BaseService + include DomainControlHelper + def call(domain_allow) - Account.where(domain: domain_allow.domain).find_each do |account| - SuspendAccountService.new.call(account, reserve_username: false) - end + suspend_accounts!(domain_allow.domain) if whitelist_mode? domain_allow.destroy end + + private + + def suspend_accounts!(domain) + Account.where(domain: domain).in_batches.update_all(suspended_at: Time.now.utc) + AfterUnallowDomainWorker.perform_async(domain) + end end |