Skip to content

Commit 71e0c6b

Browse files
jeremylenzchris1984
authored andcommitted
Fixes #37587 - ensure page and per_page are integers (#11124)
* Fixes #37587 - ensure page and per_page are integers (cherry picked from commit baa0512)
1 parent 3bc7814 commit 71e0c6b

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

app/controllers/katello/api/v2/api_controller.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ def scoped_search(query, default_sort_by, default_sort_order, options = {})
100100
else
101101
query = query.paginate(paginate_options)
102102
end
103-
page = params[:page] || 1
104-
per_page = params[:per_page] || Setting[:entries_per_page]
103+
page = metadata_page # from Foreman Api::V2::BaseController
104+
per_page = metadata_per_page
105105
query = (total.zero? || subtotal.zero?) ? blank_query : query
106106

107107
if options[:csv]

test/controllers/api/v2/api_controller_test.rb

+14
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,20 @@ def test_scoped_search_full_results_false
5555
assert_equal(2, response[:results].length)
5656
end
5757

58+
def test_scoped_search_casts_to_integer
59+
params = { full_result: 'false', page: '1', per_page: '2' }
60+
@controller.stubs(:params).returns(params)
61+
62+
response = @controller.scoped_search(@query, @default_sort[0], @default_sort[1], @options)
63+
refute_empty response[:results], "results"
64+
assert_nil response[:error], "error"
65+
assert_equal 1, response[:page], "page"
66+
assert_kind_of(Integer, response[:page])
67+
assert_equal 2, response[:per_page], "per page"
68+
assert_kind_of(Integer, response[:per_page])
69+
assert_equal(2, response[:results].length)
70+
end
71+
5872
def test_scoped_search_no_results
5973
params = { :search => "asdfasdf" }
6074
@controller.stubs(:params).returns(params)

0 commit comments

Comments
 (0)