Fix removing a DomainAllow rule wiping known accounts in open federation mode (#14298)
Fixes #14296
This commit is contained in:
		
							parent
							
								
									58204175cc
								
							
						
					
					
						commit
						ee5a4030f7
					
				
					 1 changed files with 11 additions and 3 deletions
				
			
		| 
						 | 
					@ -1,11 +1,19 @@
 | 
				
			||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class UnallowDomainService < BaseService
 | 
					class UnallowDomainService < BaseService
 | 
				
			||||||
 | 
					  include DomainControlHelper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def call(domain_allow)
 | 
					  def call(domain_allow)
 | 
				
			||||||
    Account.where(domain: domain_allow.domain).find_each do |account|
 | 
					    suspend_accounts!(domain_allow.domain) if whitelist_mode?
 | 
				
			||||||
      SuspendAccountService.new.call(account, reserve_username: false)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    domain_allow.destroy
 | 
					    domain_allow.destroy
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def suspend_accounts!(domain)
 | 
				
			||||||
 | 
					    Account.where(domain: domain).find_each do |account|
 | 
				
			||||||
 | 
					      SuspendAccountService.new.call(account, reserve_username: false)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue