Fix #484
This commit is contained in:
@@ -90,7 +90,9 @@ module Precious
|
|||||||
redirect File.join(settings.wiki_options[:base_path].to_s, 'Home')
|
redirect File.join(settings.wiki_options[:base_path].to_s, 'Home')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Removes all slashes from the start of string.
|
||||||
def clean_url url
|
def clean_url url
|
||||||
|
return url if url.nil?
|
||||||
url.gsub('%2F','/').gsub(/^\/+/,'')
|
url.gsub('%2F','/').gsub(/^\/+/,'')
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -146,7 +148,7 @@ module Precious
|
|||||||
end
|
end
|
||||||
|
|
||||||
post '/edit/*' do
|
post '/edit/*' do
|
||||||
path = sanitize_empty_params(params[:path])
|
path = '/' + clean_url(sanitize_empty_params(params[:path])).to_s
|
||||||
page_name = CGI.unescape(params[:page])
|
page_name = CGI.unescape(params[:page])
|
||||||
wiki = wiki_new
|
wiki = wiki_new
|
||||||
page = wiki.paged(page_name, path, exact = true)
|
page = wiki.paged(page_name, path, exact = true)
|
||||||
|
|||||||
@@ -50,6 +50,14 @@ context "Frontend" do
|
|||||||
assert_not_equal page_1.version.sha, page_2.version.sha
|
assert_not_equal page_1.version.sha, page_2.version.sha
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "edit page with slash" do
|
||||||
|
page_1 = @wiki.page('A')
|
||||||
|
post "/edit/A", :content => 'abc', :page => 'A', :path => '/////',
|
||||||
|
:format => page_1.format, :message => 'def'
|
||||||
|
follow_redirect!
|
||||||
|
assert last_response.ok?
|
||||||
|
end
|
||||||
|
|
||||||
test "edits page header footer and sidebar" do
|
test "edits page header footer and sidebar" do
|
||||||
commits = @wiki.repo.commits('master').size
|
commits = @wiki.repo.commits('master').size
|
||||||
page_1 = @wiki.page('A')
|
page_1 = @wiki.page('A')
|
||||||
|
|||||||
Reference in New Issue
Block a user