Skip to content

Commit 93006da

Browse files
committed
fix: [retrohunt + tracker] do not filter item sources if empty. fix #430
1 parent f528adb commit 93006da

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

bin/lib/Tracker.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,6 +1257,11 @@ def api_validate_tracker_to_add(to_track, tracker_type, nb_words=1):
12571257
return {"status": "error", "reason": "Incorrect type"}, 400
12581258
return {"status": "success", "tracked": to_track, "type": tracker_type}, 200
12591259

1260+
def remove_empty_sources_filters(filters):
1261+
for obj_filter in filters.values():
1262+
if not obj_filter.get('sources'):
1263+
obj_filter.pop('sources', None)
1264+
12601265
def api_add_tracker(dict_input, org, user_id):
12611266
to_track = dict_input.get('tracked', None)
12621267
if not to_track:
@@ -1288,6 +1293,7 @@ def api_add_tracker(dict_input, org, user_id):
12881293
# Filters # TODO MOVE ME
12891294
filters = dict_input.get('filters', {})
12901295
if filters:
1296+
remove_empty_sources_filters(filters)
12911297
if filters.keys() == get_objects_tracked() and set(filters['pgp'].get('subtypes', [])) == {'mail', 'name'}:
12921298
filters = {}
12931299
for obj_type in filters:
@@ -1379,6 +1385,7 @@ def api_edit_tracker(dict_input, user_org, user_id, user_role):
13791385
# Filters # TODO MOVE ME
13801386
filters = dict_input.get('filters', {})
13811387
if filters:
1388+
remove_empty_sources_filters(filters)
13821389
if filters.keys() == get_objects_tracked() and set(filters['pgp'].get('subtypes', [])) == {'mail', 'name'}:
13831390
if not filters['decoded'] and not filters['item']:
13841391
filters = {}
@@ -2422,6 +2429,7 @@ def api_create_retro_hunt_task(dict_input, user_org, user_id):
24222429
# Filters # TODO MOVE ME
24232430
filters = dict_input.get('filters', {})
24242431
if filters:
2432+
remove_empty_sources_filters(filters)
24252433
if filters.keys() == get_objects_retro_hunted():
24262434
filters = {}
24272435
for obj_type in filters:

var/www/blueprints/hunters.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,8 @@ def parse_add_edit_request(request_form):
456456
sources = request_form.get(f'sources_{obj_type}', [])
457457
if sources:
458458
sources = json.loads(sources)
459-
filters[obj_type]['sources'] = sources
459+
if sources:
460+
filters[obj_type]['sources'] = sources
460461
excludes = request_form.get(f'sources_{obj_type}_exclude', [])
461462
if excludes:
462463
excludes = json.loads(excludes)
@@ -910,7 +911,8 @@ def retro_hunt_add_task():
910911
sources = request.form.get(f'sources_{obj_type}', [])
911912
if sources:
912913
sources = json.loads(sources)
913-
filters[obj_type]['sources'] = sources
914+
if sources:
915+
filters[obj_type]['sources'] = sources
914916
# Subtypes
915917
for obj_subtype in ail_core.get_object_all_subtypes(obj_type):
916918
subtype = request.form.get(f'filter_{obj_type}_{obj_subtype}')

0 commit comments

Comments
 (0)