FIX: 404 if we try to navigate to a non-existant page

This commit is contained in:
Sam 2014-09-22 17:08:11 +10:00
parent 7ae72dc2ff
commit 8c74255cbb
2 changed files with 10 additions and 0 deletions

View File

@ -57,6 +57,11 @@ class TopicsController < ApplicationController
redirect_to_correct_topic(topic, opts[:post_number]) && return
end
page = params[:page].to_i
if (page - 1) * SiteSetting.posts_per_page > @topic_view.topic.highest_post_number
raise Discourse::NotFound
end
discourse_expires_in 1.minute
redirect_to_correct_topic(@topic_view.topic, opts[:post_number]) && return if slugs_do_not_match || (!request.format.json? && params[:slug].nil?)

View File

@ -573,6 +573,11 @@ describe TopicsController do
response.should be_success
end
it 'return 404 for an invalid page' do
xhr :get, :show, topic_id: topic.id, slug: topic.slug, page: 2
response.code.should == "404"
end
it 'can find a topic given a slug in the id param' do
xhr :get, :show, id: topic.slug
expect(response).to redirect_to(topic.relative_url)