From: Matt Amos Date: Tue, 15 Mar 2011 02:00:50 +0000 (+0000) Subject: Fixed bug in changeset queries X-Git-Tag: live~6350^2~109 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/f3ff36418b60a56f18525900720e6ff9d21f516d Fixed bug in changeset queries The 'or' condition needed to be bracketed within larger 'and' expression. --- diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 29b9c787b..5a4dc36fb 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -436,7 +436,7 @@ private # query changesets which are closed # ('closed at' time has passed or changes limit is hit) def conditions_closed(closed) - return closed.nil? ? nil : ['closed_at < ? or num_changes > ?', + return closed.nil? ? nil : ['(closed_at < ? or num_changes > ?)', Time.now.getutc, Changeset::MAX_ELEMENTS] end diff --git a/test/functional/changeset_controller_test.rb b/test/functional/changeset_controller_test.rb index 3d963b471..01600c2d9 100644 --- a/test/functional/changeset_controller_test.rb +++ b/test/functional/changeset_controller_test.rb @@ -1462,6 +1462,14 @@ EOF get :query, :closed => 'true' assert_response :success, "can't get changesets by closed-ness" assert_changesets [3,5,6,7] + + get :query, :closed => 'true', :user => users(:normal_user).id + assert_response :success, "can't get changesets by closed-ness and user" + assert_changesets [3,6] + + get :query, :closed => 'true', :user => users(:public_user).id + assert_response :success, "can't get changesets by closed-ness and user" + assert_changesets [7] end ##