Skip to content

Commit edf7a74

Browse files
committed
refactor: optimize get_object_or_404 calls for Engagement and Engagement_Presets
1 parent 2b51dec commit edf7a74

2 files changed

Lines changed: 6 additions & 8 deletions

File tree

dojo/engagement/views.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1377,7 +1377,7 @@ def edit_risk_acceptance(request, eid, raid):
13771377
# will only be called by view_risk_acceptance and edit_risk_acceptance
13781378
def view_edit_risk_acceptance(request, eid, raid, *, edit_mode=False):
13791379
risk_acceptance = get_object_or_404(Risk_Acceptance, pk=raid)
1380-
eng = get_object_or_404(Engagement, pk=eid)
1380+
eng = get_object_or_404(Engagement.objects.filter(risk_acceptance=risk_acceptance), pk=eid)
13811381

13821382
if edit_mode and not eng.product.enable_full_risk_acceptance:
13831383
raise PermissionDenied
@@ -1538,7 +1538,7 @@ def view_edit_risk_acceptance(request, eid, raid, *, edit_mode=False):
15381538
def expire_risk_acceptance(request, eid, raid):
15391539
risk_acceptance = get_object_or_404(prefetch_for_expiration(Risk_Acceptance.objects.all()), pk=raid)
15401540
# Validate the engagement ID exists before moving forward
1541-
get_object_or_404(Engagement, pk=eid)
1541+
get_object_or_404(Engagement.objects.filter(risk_acceptance=risk_acceptance), pk=eid)
15421542

15431543
ra_helper.expire_now(risk_acceptance)
15441544

@@ -1548,8 +1548,7 @@ def expire_risk_acceptance(request, eid, raid):
15481548
@user_is_authorized(Engagement, Permissions.Risk_Acceptance, "eid")
15491549
def reinstate_risk_acceptance(request, eid, raid):
15501550
risk_acceptance = get_object_or_404(prefetch_for_expiration(Risk_Acceptance.objects.all()), pk=raid)
1551-
eng = get_object_or_404(Engagement, pk=eid)
1552-
1551+
eng = get_object_or_404(Engagement.objects.filter(risk_acceptance=risk_acceptance), pk=eid)
15531552
if not eng.product.enable_full_risk_acceptance:
15541553
raise PermissionDenied
15551554

@@ -1561,8 +1560,7 @@ def reinstate_risk_acceptance(request, eid, raid):
15611560
@user_is_authorized(Engagement, Permissions.Risk_Acceptance, "eid")
15621561
def delete_risk_acceptance(request, eid, raid):
15631562
risk_acceptance = get_object_or_404(Risk_Acceptance, pk=raid)
1564-
eng = get_object_or_404(Engagement, pk=eid)
1565-
1563+
eng = get_object_or_404(Engagement.objects.filter(risk_acceptance=risk_acceptance), pk=eid)
15661564
ra_helper.delete(eng, risk_acceptance)
15671565

15681566
messages.add_message(

dojo/product/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1597,7 +1597,7 @@ def engagement_presets(request, pid):
15971597
@user_is_authorized(Product, Permissions.Product_Edit, "pid")
15981598
def edit_engagement_presets(request, pid, eid):
15991599
prod = get_object_or_404(Product, id=pid)
1600-
preset = get_object_or_404(Engagement_Presets, id=eid)
1600+
preset = get_object_or_404(Engagement_Presets.objects.filter(product=prod), id=eid)
16011601

16021602
product_tab = Product_Tab(prod, title=_("Edit Engagement Preset"), tab="settings")
16031603

@@ -1646,7 +1646,7 @@ def add_engagement_presets(request, pid):
16461646
@user_is_authorized(Product, Permissions.Product_Edit, "pid")
16471647
def delete_engagement_presets(request, pid, eid):
16481648
prod = get_object_or_404(Product, id=pid)
1649-
preset = get_object_or_404(Engagement_Presets, id=eid)
1649+
preset = get_object_or_404(Engagement_Presets.objects.filter(product=prod), id=eid)
16501650
form = DeleteEngagementPresetsForm(instance=preset)
16511651

16521652
if request.method == "POST":

0 commit comments

Comments
 (0)