From 0215e2424b96500952424cd649c1b1161aae1981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 25 Feb 2020 15:02:35 +0100 Subject: [PATCH] wcs: limit forms/tracking codes search engine to agent portal (#30508) --- combo/apps/wcs/__init__.py | 4 ++++ tests/test_wcs.py | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/combo/apps/wcs/__init__.py b/combo/apps/wcs/__init__.py index aede109e..d5412651 100644 --- a/combo/apps/wcs/__init__.py +++ b/combo/apps/wcs/__init__.py @@ -17,6 +17,7 @@ import hashlib import django.apps +from django.conf import settings from django.core.urlresolvers import reverse from django.utils.encoding import force_bytes from django.utils.translation import ugettext_lazy as _, pgettext_lazy @@ -36,6 +37,9 @@ class AppConfig(django.apps.AppConfig): if not services: return + if not settings.TEMPLATE_VARS.get('is_portal_agent'): + return + engines = { 'tracking-code': { 'url': reverse('wcs-tracking-code-search') + '?q=%(q)s', diff --git a/tests/test_wcs.py b/tests/test_wcs.py index f145129a..8f00b5f8 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -833,6 +833,7 @@ def test_cell_assets(app, admin_user): @wcs_present def test_tracking_code_search(app, nocache): + settings.TEMPLATE_VARS['is_portal_agent'] = True assert len(app.get('/api/search/tracking-code/').json.get('data')) == 0 assert app.get('/api/search/tracking-code/').json.get('err') == 0 assert len(app.get('/api/search/tracking-code/?q=123').json.get('data')) == 0 @@ -844,6 +845,7 @@ def test_tracking_code_search(app, nocache): @wcs_present def test_tracking_code_search_rate_limit(app): + settings.TEMPLATE_VARS['is_portal_agent'] = True for i in range(3): assert app.get('/api/search/tracking-code/?q=BBCCDDFF').json.get('err') == 0 assert app.get('/api/search/tracking-code/?q=BBCCDDFF').json.get('err') == 1 @@ -873,9 +875,14 @@ def test_tracking_code_search_rate_limit(app): @wcs_present def test_wcs_search_engines(app): + settings.TEMPLATE_VARS['is_portal_agent'] = True search_engines = engines.get_engines() assert 'tracking-code' in search_engines.keys() assert len([x for x in search_engines.keys() if x.startswith('formdata:')]) == 2 + settings.TEMPLATE_VARS['is_portal_agent'] = False + search_engines = engines.get_engines() + assert 'tracking-code' not in search_engines.keys() + assert len([x for x in search_engines.keys() if x.startswith('formdata:')]) == 0 @wcs_present def test_backoffice_submission_cell_render(context):