From ee5a4030f76c0ec4799d2249aad952665a7bda80 Mon Sep 17 00:00:00 2001
From: ThibG <thib@sitedethib.com>
Date: Sun, 12 Jul 2020 22:11:49 +0200
Subject: [PATCH] Fix removing a DomainAllow rule wiping known accounts in open
 federation mode (#14298)

Fixes #14296
---
 app/services/unallow_domain_service.rb | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/app/services/unallow_domain_service.rb b/app/services/unallow_domain_service.rb
index bd1ad328da..870c799514 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
-- 
GitLab