Allow ports for embed host IPs

This commit is contained in:
Kenny Meyer 2017-03-15 18:16:34 -03:00
parent 61a7162c01
commit ae957bca25
2 changed files with 7 additions and 1 deletions

View File

@ -40,7 +40,7 @@ class EmbeddableHost < ActiveRecord::Base
def host_must_be_valid def host_must_be_valid
if host !~ /\A[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,7}(:[0-9]{1,5})?(\/.*)?\Z/i && if host !~ /\A[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,7}(:[0-9]{1,5})?(\/.*)?\Z/i &&
host !~ /\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z/ && host !~ /\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(:[0-9]{1,5})?(\/.*)?\Z/ &&
host !~ /\A([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.)?localhost(\:[0-9]{1,5})?(\/.*)?\Z/i host !~ /\A([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.)?localhost(\:[0-9]{1,5})?(\/.*)?\Z/i
errors.add(:host, I18n.t('errors.messages.invalid')) errors.add(:host, I18n.t('errors.messages.invalid'))
end end

View File

@ -38,6 +38,12 @@ describe EmbeddableHost do
expect(eh.host).to eq('localhost:8080') expect(eh.host).to eq('localhost:8080')
end end
it "supports ports for ip addresses" do
eh = EmbeddableHost.new(host: '192.168.0.1:3000')
expect(eh).to be_valid
expect(eh.host).to eq('192.168.0.1:3000')
end
it "supports subdomains of localhost" do it "supports subdomains of localhost" do
eh = EmbeddableHost.new(host: 'discourse.localhost') eh = EmbeddableHost.new(host: 'discourse.localhost')
expect(eh).to be_valid expect(eh).to be_valid