diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-01-05 13:33:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-05 13:33:33 +0100 |
commit | 3654c945832405267e80fe24b14f7e1d74c395ba (patch) | |
tree | f3b1a1c11eae7551e0d2a4862f4d99c92cf18cb5 | |
parent | b3ab0014e669e25b984dc7e769a2d1e6d2736ef0 (diff) |
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
-rw-r--r-- | app/models/relay.rb | 5 | ||||
-rw-r--r-- | app/validators/url_validator.rb | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/app/models/relay.rb b/app/models/relay.rb index d6ddd30ed..c66bfe4ff 100644 --- a/app/models/relay.rb +++ b/app/models/relay.rb @@ -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 diff --git a/app/validators/url_validator.rb b/app/validators/url_validator.rb index 75d1edb87..a90fb6958 100644 --- a/app/validators/url_validator.rb +++ b/app/validators/url_validator.rb @@ -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 |