Fix uncaught domain normalization error in remote follow (#11703)
This commit is contained in:
		
					parent
					
						
							
								6914482d0a
							
						
					
				
			
			
				commit
				
					
						b54b725d6b
					
				
			
		
					 6 changed files with 18 additions and 10 deletions
				
			
		|  | @ -4,14 +4,22 @@ class DomainValidator < ActiveModel::EachValidator | |||
|   def validate_each(record, attribute, value) | ||||
|     return if value.blank? | ||||
| 
 | ||||
|     record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(value) | ||||
|     domain = begin | ||||
|       if options[:acct] | ||||
|         value.split('@').last | ||||
|       else | ||||
|         value | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(domain) | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def compliant?(value) | ||||
|     Addressable::URI.new.tap { |uri| uri.host = value } | ||||
|   rescue Addressable::URI::InvalidURIError | ||||
|   rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError | ||||
|     false | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue