Strip spaces around URL when adding a relay (#22655)
* Strip spaces around URL when adding a relay Fixes #22650 * Gracefuly handle URL parsing errors in URL validator
This commit is contained in:
		
							parent
							
								
									b3ab0014e6
								
							
						
					
					
						commit
						3654c94583
					
				| @ -18,6 +18,7 @@ class Relay < ApplicationRecord | ||||
| 
 | ||||
|   scope :enabled, -> { accepted } | ||||
| 
 | ||||
|   before_validation :strip_url | ||||
|   before_destroy :ensure_disabled | ||||
| 
 | ||||
|   alias enabled? accepted? | ||||
| @ -74,4 +75,8 @@ class Relay < ApplicationRecord | ||||
|   def ensure_disabled | ||||
|     disable! if enabled? | ||||
|   end | ||||
| 
 | ||||
|   def strip_url | ||||
|     inbox_url&.strip! | ||||
|   end | ||||
| end | ||||
|  | ||||
| @ -10,5 +10,7 @@ class URLValidator < ActiveModel::EachValidator | ||||
|   def compliant?(url) | ||||
|     parsed_url = Addressable::URI.parse(url) | ||||
|     parsed_url && %w(http https).include?(parsed_url.scheme) && parsed_url.host | ||||
|   rescue Addressable::URI::InvalidURIError | ||||
|     false | ||||
|   end | ||||
| end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user