Merge pull request #4450 from consul/notification_relative_urls

Fix admin notification with relative URLs
This commit is contained in:
Javi Martín
2021-03-31 14:15:30 +02:00
committed by GitHub
3 changed files with 9 additions and 2 deletions

View File

@@ -42,7 +42,7 @@ class AdminNotification < ApplicationRecord
def complete_link_url
return unless link.present?
unless self.link[/\Ahttp:\/\//] || self.link[/\Ahttps:\/\//]
unless link =~ /\A(http:\/\/|https:\/\/|\/)/
self.link = "http://#{self.link}"
end
end

View File

@@ -43,6 +43,13 @@ describe AdminNotification do
expect(admin_notification.link).to eq("http://www.lol.consul.dev")
end
it "does not modify a relative link" do
admin_notification.link = "/proposals"
expect(admin_notification).to be_valid
expect(admin_notification.link).to eq("/proposals")
end
it "does not modify a link with http://" do
admin_notification.link = "http://lol.consul.dev"

View File

@@ -158,7 +158,7 @@ describe "Notifications" do
expect(page.current_url).to eq("https://www.external.link.dev/")
end
scenario "With internal link" do
scenario "With internal link", :js do
admin_notification.update!(link: "/stats")
visit notifications_path