Don't escape page path. Resolves #1615 (#1618)

This commit is contained in:
Dawa Ometto
2020-09-21 15:50:58 +02:00
committed by GitHub
parent dbe849707a
commit 123518b940
2 changed files with 3 additions and 4 deletions
+2 -3
View File
@@ -318,9 +318,8 @@ module Precious
post '/edit/*' do post '/edit/*' do
etag = params[:etag] etag = params[:etag]
path = "/#{clean_url(sanitize_empty_params(params[:path]))}" path = "/#{clean_url(sanitize_empty_params(params[:path]))}"
page_name = CGI.unescape(params[:page])
wiki = wiki_new wiki = wiki_new
page = wiki.page(::File.join(path, page_name)) page = wiki.page(::File.join(path, params[:page]))
return if page.nil? return if page.nil?
if etag != page.sha if etag != page.sha
@@ -417,7 +416,7 @@ module Precious
post '/preview' do post '/preview' do
wiki = wiki_new wiki = wiki_new
@name = params[:page] ? strip_page_name(CGI.unescape(params[:page])) : 'Preview' @name = params[:page] ? strip_page_name(params[:page]) : 'Preview'
@page = wiki.preview_page(@name, params[:content], params[:format]) @page = wiki.preview_page(@name, params[:content], params[:format])
['sidebar', 'header', 'footer'].each do |subpage| ['sidebar', 'header', 'footer'].each do |subpage|
@page.send("set_#{subpage}".to_sym, params[subpage]) if params[subpage] @page.send("set_#{subpage}".to_sym, params[subpage]) if params[subpage]
+1 -1
View File
@@ -474,7 +474,7 @@ EOF
end end
test "previews content" do test "previews content" do
post "/gollum/preview", :content => 'abc', :format => 'markdown', :page => 'Samewise%20Gamgee.mediawiki' post "/gollum/preview", :content => 'abc', :format => 'markdown', :page => 'Samewise Gamgee.mediawiki'
assert last_response.ok? assert last_response.ok?
assert last_response.body.include?('Samewise Gamgee</h1>') assert last_response.body.include?('Samewise Gamgee</h1>')
end end