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
|
||||
def call
|
||||
return doc unless project
|
||||
|
||||
doc.search('a').each do |el|
|
||||
process_link_attr el.attribute('href')
|
||||
end
|
||||
|
@ -31,11 +33,13 @@ module Banzai
|
|||
end
|
||||
|
||||
def build_url(uri)
|
||||
return '#' unless project = context[:project]
|
||||
|
||||
File.join(Gitlab.config.gitlab.url, project.path_with_namespace, uri)
|
||||
end
|
||||
|
||||
def project
|
||||
context[:project]
|
||||
end
|
||||
|
||||
# Ensure that a :project key exists in context
|
||||
#
|
||||
# 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') }
|
||||
|
||||
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
|
||||
|
||||
it 'provides an empty link' do
|
||||
it 'does not rewrite link' do
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue