From 7f047cc4cfb0ad518a957728fa4179a865447a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 5 Feb 2016 16:56:36 +0100 Subject: [PATCH] backoffice: ignore callback query parameter when counting forms (#9884) --- tests/test_backoffice_pages.py | 9 +++++++++ wcs/backoffice/management.py | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/test_backoffice_pages.py b/tests/test_backoffice_pages.py index 9d874d9..7a10f10 100644 --- a/tests/test_backoffice_pages.py +++ b/tests/test_backoffice_pages.py @@ -1487,6 +1487,15 @@ def test_count_open(pub): formdef.data_class().rebuild_security() resp = login(get_app(pub)).get('/backoffice/management/count?waiting=no') assert resp.json['count'] == 37 + resp = login(get_app(pub)).get('/backoffice/management/count?waiting=yes') + assert resp.json['count'] == 20 + resp = login(get_app(pub)).get('/backoffice/management/count') + assert resp.json['count'] == 20 + + # check the callback parameter is ignored, that we still get the default + # criterias when it's set. + resp = login(get_app(pub)).get('/backoffice/management/count?callback=toto') + assert "20" in resp.body def test_count_backoffice_drafts(pub): user = create_user(pub) diff --git a/wcs/backoffice/management.py b/wcs/backoffice/management.py index 2ad414a..e8c97ed 100644 --- a/wcs/backoffice/management.py +++ b/wcs/backoffice/management.py @@ -655,7 +655,9 @@ class ManagementDirectory(Directory): user_roles = [logged_users_role().id] + (get_request().user.roles or []) criterias = get_global_criteria(get_request(), parsed_values) criterias.append(Equal('is_at_endpoint', False)) - if not get_request().form or get_request().form.get('waiting') == 'yes': + query_parameters = (get_request().form or {}).copy() + query_parameters.pop('callback', None) + if not query_parameters or get_request().form.get('waiting') == 'yes': criterias.append(Intersects('actions_roles_array', user_roles)) else: criterias.append(Intersects('concerned_roles_array', user_roles)) -- 2.7.0