Create DomainNormalizable#normalize_domain (#9631)
This commit is contained in:
		
							parent
							
								
									bf70e5cfda
								
							
						
					
					
						commit
						0c1e4bb969
					
				
					 4 changed files with 20 additions and 17 deletions
				
			
		| 
						 | 
				
			
			@ -59,6 +59,7 @@ class Account < ApplicationRecord
 | 
			
		|||
  include Attachmentable
 | 
			
		||||
  include Paginable
 | 
			
		||||
  include AccountCounters
 | 
			
		||||
  include DomainNormalizable
 | 
			
		||||
 | 
			
		||||
  enum protocol: [:ostatus, :activitypub]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -457,7 +458,6 @@ class Account < ApplicationRecord
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  before_create :generate_keys
 | 
			
		||||
  before_validation :normalize_domain
 | 
			
		||||
  before_validation :prepare_contents, if: :local?
 | 
			
		||||
  before_destroy :clean_feed_manager
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -479,7 +479,7 @@ class Account < ApplicationRecord
 | 
			
		|||
  def normalize_domain
 | 
			
		||||
    return if local?
 | 
			
		||||
 | 
			
		||||
    self.domain = TagManager.instance.normalize_domain(domain)
 | 
			
		||||
    super
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def emojifiable_text
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								app/models/concerns/domain_normalizable.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								app/models/concerns/domain_normalizable.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module DomainNormalizable
 | 
			
		||||
  extend ActiveSupport::Concern
 | 
			
		||||
 | 
			
		||||
  included do
 | 
			
		||||
    before_validation :normalize_domain
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def normalize_domain
 | 
			
		||||
    self.domain = TagManager.instance.normalize_domain(domain)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -13,6 +13,8 @@
 | 
			
		|||
#
 | 
			
		||||
 | 
			
		||||
class DomainBlock < ApplicationRecord
 | 
			
		||||
  include DomainNormalizable
 | 
			
		||||
 | 
			
		||||
  enum severity: [:silence, :suspend, :noop]
 | 
			
		||||
 | 
			
		||||
  attr_accessor :retroactive
 | 
			
		||||
| 
						 | 
				
			
			@ -25,12 +27,4 @@ class DomainBlock < ApplicationRecord
 | 
			
		|||
  def self.blocked?(domain)
 | 
			
		||||
    where(domain: domain, severity: :suspend).exists?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  before_validation :normalize_domain
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def normalize_domain
 | 
			
		||||
    self.domain = TagManager.instance.normalize_domain(domain)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
#
 | 
			
		||||
 | 
			
		||||
class EmailDomainBlock < ApplicationRecord
 | 
			
		||||
  before_validation :normalize_domain
 | 
			
		||||
  include DomainNormalizable
 | 
			
		||||
 | 
			
		||||
  validates :domain, presence: true, uniqueness: true
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,10 +27,4 @@ class EmailDomainBlock < ApplicationRecord
 | 
			
		|||
 | 
			
		||||
    where(domain: domain).exists?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def normalize_domain
 | 
			
		||||
    self.domain = TagManager.instance.normalize_domain(domain)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue