summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2022-02-18 08:03:52 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2022-02-18 08:03:52 +0000
commitd8263dcdee13b27ea4ac56c28d10dc2ca7fb8b40 (patch)
tree8cae586bd8ca7b834be34187b17df96ae19d06e6
parentf70d7a3096971c43370247627feee3c0895bb828 (diff)
downloadredmine-d8263dcdee13b27ea4ac56c28d10dc2ca7fb8b40.tar.gz
redmine-d8263dcdee13b27ea4ac56c28d10dc2ca7fb8b40.zip
Return 404 if revision URL doesn't exist (#36561).
Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@21413 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/wiki_controller.rb2
-rw-r--r--app/models/wiki_page.rb6
-rw-r--r--test/functional/wiki_controller_test.rb6
3 files changed, 8 insertions, 6 deletions
diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb
index 98066a713..074031eec 100644
--- a/app/controllers/wiki_controller.rb
+++ b/app/controllers/wiki_controller.rb
@@ -89,7 +89,7 @@ class WikiController < ApplicationController
end
@content = @page.content_for_version(params[:version])
if @content.nil?
- if User.current.allowed_to?(:edit_wiki_pages, @project) && editable? && !api_request?
+ if params[:version].blank? && User.current.allowed_to?(:edit_wiki_pages, @project) && editable? && !api_request?
edit
render :action => 'edit'
else
diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb
index ff1c598eb..7c5693ca1 100644
--- a/app/models/wiki_page.rb
+++ b/app/models/wiki_page.rb
@@ -162,11 +162,7 @@ class WikiPage < ActiveRecord::Base
end
def content_for_version(version=nil)
- if content
- result = content.versions.find_by_version(version.to_i) if version
- result ||= content
- result
- end
+ (content && version) ? content.versions.find_by_version(version.to_i) : content
end
def diff(version_to=nil, version_from=nil)
diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
index d5758cb09..64d0a4e48 100644
--- a/test/functional/wiki_controller_test.rb
+++ b/test/functional/wiki_controller_test.rb
@@ -201,6 +201,12 @@ class WikiControllerTest < Redmine::ControllerTest
assert_select 'select[name=?] option[value="2"][selected=selected]', 'wiki_page[parent_id]'
end
+ def test_show_unexistent_version_page
+ @request.session[:user_id] = 2
+ get :show, :params => {:project_id => 1, :id => 'CookBook_documentation', :version => 100}
+ assert_response 404
+ end
+
def test_show_should_not_show_history_without_permission
Role.anonymous.remove_permission! :view_wiki_edits
get :show, :params => {:project_id => 1, :id => 'Page with sections', :version => 2}