Do not process upload links if no project context
This commit is contained in:
parent
c97a81d274
commit
535be93a77
2 changed files with 9 additions and 5 deletions
|
@ -8,6 +8,8 @@ module Banzai
|
||||||
#
|
#
|
||||||
class UploadLinkFilter < HTML::Pipeline::Filter
|
class UploadLinkFilter < HTML::Pipeline::Filter
|
||||||
def call
|
def call
|
||||||
|
return doc unless project
|
||||||
|
|
||||||
doc.search('a').each do |el|
|
doc.search('a').each do |el|
|
||||||
process_link_attr el.attribute('href')
|
process_link_attr el.attribute('href')
|
||||||
end
|
end
|
||||||
|
@ -31,11 +33,13 @@ module Banzai
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_url(uri)
|
def build_url(uri)
|
||||||
return '#' unless project = context[:project]
|
|
||||||
|
|
||||||
File.join(Gitlab.config.gitlab.url, project.path_with_namespace, uri)
|
File.join(Gitlab.config.gitlab.url, project.path_with_namespace, uri)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def project
|
||||||
|
context[:project]
|
||||||
|
end
|
||||||
|
|
||||||
# Ensure that a :project key exists in context
|
# Ensure that a :project key exists in context
|
||||||
#
|
#
|
||||||
# Note that while the key might exist, its value could be nil!
|
# Note that while the key might exist, its value could be nil!
|
||||||
|
|
|
@ -79,13 +79,13 @@ describe Banzai::Filter::UploadLinkFilter, lib: true do
|
||||||
let(:upload_link) { link('/uploads/e90decf88d8f96fe9e1389afc2e4a91f/test.jpg') }
|
let(:upload_link) { link('/uploads/e90decf88d8f96fe9e1389afc2e4a91f/test.jpg') }
|
||||||
|
|
||||||
it 'does not raise error' do
|
it 'does not raise error' do
|
||||||
expect { raw_filter(upload_link, project: nil) }.to_not raise_error
|
expect { raw_filter(upload_link, project: nil) }.not_to raise_error
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'provides an empty link' do
|
it 'does not rewrite link' do
|
||||||
doc = raw_filter(upload_link, project: nil)
|
doc = raw_filter(upload_link, project: nil)
|
||||||
|
|
||||||
expect(doc.at_css('a')['href']).to eq '#'
|
expect(doc.to_html).to eq upload_link
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue