mirror of
https://github.com/discourse/discourse.git
synced 2025-01-18 16:42:46 +08:00
correct exception handling, always do to_i in array
This commit is contained in:
parent
1172e141cd
commit
06f82a7d72
|
@ -18,7 +18,7 @@ class TopicQuery
|
|||
end
|
||||
|
||||
array_int = lambda do |x|
|
||||
Array === x && x.length > 0 && x.all? { |i| Integer === i }
|
||||
Array === x && x.length > 0 && x.all? { |i| Integer === i || i.match?(/^-?[0-9]+$/) }
|
||||
end
|
||||
|
||||
{
|
||||
|
@ -656,7 +656,7 @@ class TopicQuery
|
|||
result = apply_shared_drafts(result, category_id, options)
|
||||
|
||||
if options[:exclude_category_ids] && options[:exclude_category_ids].is_a?(Array) && options[:exclude_category_ids].size > 0
|
||||
result = result.where("categories.id NOT IN (?)", options[:exclude_category_ids]).references(:categories)
|
||||
result = result.where("categories.id NOT IN (?)", options[:exclude_category_ids].map(&:to_i)).references(:categories)
|
||||
end
|
||||
|
||||
# Don't include the category topics if excluded
|
||||
|
|
|
@ -30,6 +30,11 @@ RSpec.describe ListController do
|
|||
expect(response.status).to eq(400)
|
||||
end
|
||||
|
||||
it "returns 200 for legit requests" do
|
||||
get "/latest.json?exclude_category_ids%5B%5D=69&exclude_category_ids%5B%5D=70&no_definitions=true&no_subcategories=false&page=1&_=1534296100767"
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it "doesn't throw an error with page params as an array" do
|
||||
get "/#{Discourse.anonymous_filters[1]}", params: { page: ['7'] }
|
||||
expect(response.status).to eq(200)
|
||||
|
|
Loading…
Reference in New Issue
Block a user