about summary refs log tree commit diff
path: root/app/services
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-07-12 22:11:49 +0200
committerGitHub <noreply@github.com>2020-07-12 22:11:49 +0200
commitee5a4030f76c0ec4799d2249aad952665a7bda80 (patch)
treee444c5294921ad9393ef8fb06fd034889c6ff2d0 /app/services
parent58204175cc0407673dfbdafec8d15d589e3216d9 (diff)
Fix removing a DomainAllow rule wiping known accounts in open federation mode (#14298)
Fixes #14296
Diffstat (limited to 'app/services')
-rw-r--r--app/services/unallow_domain_service.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/app/services/unallow_domain_service.rb b/app/services/unallow_domain_service.rb
index bd1ad328d..870c79951 100644
--- a/app/services/unallow_domain_service.rb
+++ b/app/services/unallow_domain_service.rb
@@ -1,11 +1,19 @@
 # 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).find_each do |account|
+      SuspendAccountService.new.call(account, reserve_username: false)
+    end
+  end
 end