diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 98066a713d..074031eecb 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 ff1c598eb1..7c5693ca1e 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 d5758cb095..64d0a4e487 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}