Skip to content

Commit 04d82e2

Browse files
authored
Delete Preview: Expand on missed objects (#10564)
1 parent b55c609 commit 04d82e2

9 files changed

Lines changed: 87 additions & 45 deletions

File tree

dojo/endpoint/views.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
calculate_grade,
2929
get_page_items,
3030
get_period_counts,
31+
get_setting,
3132
get_system_setting,
3233
is_scan_file_too_large,
3334
redirect,
@@ -223,9 +224,12 @@ def delete_endpoint(request, eid):
223224
extra_tags='alert-success')
224225
return HttpResponseRedirect(reverse('view_product', args=(product.id,)))
225226

226-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
227-
collector.collect([endpoint])
228-
rels = collector.nested()
227+
rels = ["Previewing the relationships has been disabled.", ""]
228+
display_preview = get_setting("DELETE_PREVIEW")
229+
if display_preview:
230+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
231+
collector.collect([endpoint])
232+
rels = collector.nested()
229233

230234
product_tab = Product_Tab(endpoint.product, "Delete Endpoint", tab="endpoints")
231235

dojo/finding_group/views.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from dojo.finding.views import prefetch_for_findings
1717
from dojo.forms import DeleteFindingGroupForm, EditFindingGroupForm, FindingBulkUpdateForm
1818
from dojo.models import Engagement, Finding, Finding_Group, GITHUB_PKey, Product
19-
from dojo.utils import Product_Tab, add_breadcrumb, get_page_items, get_system_setting, get_words_for_field
19+
from dojo.utils import Product_Tab, add_breadcrumb, get_page_items, get_setting, get_system_setting, get_words_for_field
2020

2121
logger = logging.getLogger(__name__)
2222

@@ -121,9 +121,12 @@ def delete_finding_group(request, fgid):
121121
extra_tags='alert-success')
122122
return HttpResponseRedirect(reverse('view_test', args=(finding_group.test.id,)))
123123

124-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
125-
collector.collect([finding_group])
126-
rels = collector.nested()
124+
rels = ["Previewing the relationships has been disabled.", ""]
125+
display_preview = get_setting("DELETE_PREVIEW")
126+
if display_preview:
127+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
128+
collector.collect([finding_group])
129+
rels = collector.nested()
127130
product_tab = Product_Tab(finding_group.test.engagement.product, title="Product", tab="settings")
128131

129132
return render(request, 'dojo/delete_finding_group.html', {

dojo/github_issue_link/views.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# Local application/library imports
1717
from dojo.forms import DeleteGITHUBConfForm, GITHUBForm
1818
from dojo.models import GITHUB_Conf
19-
from dojo.utils import add_breadcrumb
19+
from dojo.utils import add_breadcrumb, get_setting
2020

2121
logger = logging.getLogger(__name__)
2222

@@ -87,9 +87,12 @@ def delete_github(request, tid):
8787
extra_tags='alert-success')
8888
return HttpResponseRedirect(reverse('github'))
8989

90-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
91-
collector.collect([github_instance])
92-
rels = collector.nested()
90+
rels = ["Previewing the relationships has been disabled.", ""]
91+
display_preview = get_setting("DELETE_PREVIEW")
92+
if display_preview:
93+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
94+
collector.collect([github_instance])
95+
rels = collector.nested()
9396

9497
add_breadcrumb(title="Delete", top_level=False, request=request)
9598
return render(request, 'dojo/delete_github.html',

dojo/group/views.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,13 @@
4040
)
4141
from dojo.group.utils import get_auth_group_name
4242
from dojo.models import Dojo_Group, Dojo_Group_Member, Global_Role, Product_Group, Product_Type_Group
43-
from dojo.utils import add_breadcrumb, get_page_items, is_title_in_breadcrumbs, redirect_to_return_url_or_else
43+
from dojo.utils import (
44+
add_breadcrumb,
45+
get_page_items,
46+
get_setting,
47+
is_title_in_breadcrumbs,
48+
redirect_to_return_url_or_else,
49+
)
4450

4551
logger = logging.getLogger(__name__)
4652

@@ -239,12 +245,16 @@ def get_group_form(self, request: HttpRequest, group: Dojo_Group):
239245

240246
def get_initial_context(self, request: HttpRequest, group: Dojo_Group):
241247
# Add the related objects to the delete page
242-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
243-
collector.collect([group])
248+
rels = ["Previewing the relationships has been disabled.", ""]
249+
display_preview = get_setting("DELETE_PREVIEW")
250+
if display_preview:
251+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
252+
collector.collect([group])
253+
rels = collector.nested()
244254
return {
245255
"form": self.get_group_form(request, group),
246256
"to_delete": group,
247-
"rels": collector.nested()
257+
"rels": rels,
248258
}
249259

250260
def process_forms(self, request: HttpRequest, group: Dojo_Group, context: dict):

dojo/jira_link/views.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from dojo.forms import DeleteJIRAInstanceForm, ExpressJIRAForm, JIRAForm
2525
from dojo.models import JIRA_Instance, JIRA_Issue, Notes, System_Settings, User
2626
from dojo.notifications.helper import create_notification
27-
from dojo.utils import add_breadcrumb, add_error_message_to_response
27+
from dojo.utils import add_breadcrumb, add_error_message_to_response, get_setting
2828

2929
logger = logging.getLogger(__name__)
3030

@@ -515,9 +515,12 @@ def get(self, request, tid=None):
515515
raise PermissionDenied
516516
jira_instance = get_object_or_404(JIRA_Instance, pk=tid)
517517
form = self.get_form_class()(instance=jira_instance)
518-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
519-
collector.collect([jira_instance])
520-
rels = collector.nested()
518+
rels = ["Previewing the relationships has been disabled.", ""]
519+
display_preview = get_setting("DELETE_PREVIEW")
520+
if display_preview:
521+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
522+
collector.collect([jira_instance])
523+
rels = collector.nested()
521524

522525
add_breadcrumb(title="Delete", top_level=False, request=request)
523526
return render(request, self.get_template(), {
@@ -549,9 +552,13 @@ def post(self, request, tid=None):
549552
return HttpResponseRedirect(reverse('jira'))
550553
except Exception as e:
551554
add_error_message_to_response(f'Unable to delete JIRA Instance, probably because it is used by JIRA Issues: {str(e)}')
552-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
553-
collector.collect([jira_instance])
554-
rels = collector.nested()
555+
556+
rels = ["Previewing the relationships has been disabled.", ""]
557+
display_preview = get_setting("DELETE_PREVIEW")
558+
if display_preview:
559+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
560+
collector.collect([jira_instance])
561+
rels = collector.nested()
555562

556563
add_breadcrumb(title="Delete", top_level=False, request=request)
557564
return render(request, self.get_template(), {

dojo/product/views.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,9 +1625,12 @@ def delete_engagement_presets(request, pid, eid):
16251625
extra_tags='alert-success')
16261626
return HttpResponseRedirect(reverse('engagement_presets', args=(pid,)))
16271627

1628-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
1629-
collector.collect([preset])
1630-
rels = collector.nested()
1628+
rels = ["Previewing the relationships has been disabled.", ""]
1629+
display_preview = get_setting("DELETE_PREVIEW")
1630+
if display_preview:
1631+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
1632+
collector.collect([preset])
1633+
rels = collector.nested()
16311634

16321635
product_tab = Product_Tab(prod, title=_("Delete Engagement Preset"), tab="settings")
16331636
return render(request, 'dojo/delete_presets.html',

dojo/survey/views.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
System_Settings,
5050
TextQuestion,
5151
)
52-
from dojo.utils import add_breadcrumb, get_page_items
52+
from dojo.utils import add_breadcrumb, get_page_items, get_setting
5353

5454

5555
@user_is_authorized(Engagement, Permissions.Engagement_Edit, 'eid')
@@ -315,9 +315,12 @@ def edit_questionnaire(request, sid):
315315
def delete_questionnaire(request, sid):
316316
survey = get_object_or_404(Engagement_Survey, id=sid)
317317
form = Delete_Eng_Survey_Form(instance=survey)
318-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
319-
collector.collect([survey])
320-
rels = collector.nested()
318+
rels = ["Previewing the relationships has been disabled.", ""]
319+
display_preview = get_setting("DELETE_PREVIEW")
320+
if display_preview:
321+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
322+
collector.collect([survey])
323+
rels = collector.nested()
321324

322325
if request.method == 'POST':
323326
if 'id' in request.POST and str(survey.id) == request.POST['id']:

dojo/templates/dojo/delete_alerts.html

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@ <h3>{% blocktrans %}Delete All alerts {{ product }}{% endblocktrans %}</h3>
88
<div class="panel-heading">
99
<h3>{% trans "Danger Zone" %}</h3>
1010
</div>
11-
12-
<div>
13-
<h4>{% trans "The following alerts will be deleted" %}</h4>
14-
</div>
15-
{% for alert in alerts %}
16-
<tr>
17-
<td>{% if alert.url %}<a href="{{ alert.url }}">{% endif %}{{ alert.title|linebreaks }}{% if alert.url %}</a>{% endif %}</td>
18-
</tr>
19-
{% endfor %}
11+
{% if delete_preview%}
12+
<div>
13+
<h4>{% trans "The following alerts will be deleted" %}</h4>
14+
</div>
15+
{% for alert in alerts %}
16+
<tr>
17+
<td>{% if alert.url %}<a href="{{ alert.url }}">{% endif %}{{ alert.title|linebreaks }}{% if alert.url %}</a>{% endif %}</td>
18+
</tr>
19+
{% endfor %}
20+
{% else %}
21+
<div>
22+
<h4>{% trans "Previewing the relationships has been disabled." %}</h4>
23+
</div>
24+
{% endif %}
2025
<form class="form-horizontal" method="post">
2126
{% csrf_token %}
2227
{{ form }}

dojo/user/views.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
from dojo.models import Alerts, Dojo_Group_Member, Dojo_User, Product_Member, Product_Type_Member
5050
from dojo.product.queries import get_authorized_product_members_for_user
5151
from dojo.product_type.queries import get_authorized_product_type_members_for_user
52-
from dojo.utils import add_breadcrumb, get_page_items, get_system_setting
52+
from dojo.utils import add_breadcrumb, get_page_items, get_setting, get_system_setting
5353

5454
logger = logging.getLogger(__name__)
5555

@@ -199,9 +199,10 @@ def delete_alerts(request):
199199
extra_tags='alert-success')
200200
return HttpResponseRedirect('alerts')
201201

202-
return render(request,
203-
'dojo/delete_alerts.html',
204-
{'alerts': alerts})
202+
return render(request, 'dojo/delete_alerts.html', {
203+
"alerts": alerts,
204+
"delete_preview": get_setting('DELETE_PREVIEW'),
205+
})
205206

206207

207208
@login_required
@@ -493,9 +494,12 @@ def delete_user(request, uid):
493494
extra_tags='alert-warning')
494495
return HttpResponseRedirect(reverse('users'))
495496

496-
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
497-
collector.collect([user])
498-
rels = collector.nested()
497+
rels = ["Previewing the relationships has been disabled.", ""]
498+
display_preview = get_setting("DELETE_PREVIEW")
499+
if display_preview:
500+
collector = NestedObjects(using=DEFAULT_DB_ALIAS)
501+
collector.collect([user])
502+
rels = collector.nested()
499503

500504
add_breadcrumb(title=_("Delete User"), top_level=False, request=request)
501505
return render(request, 'dojo/delete_user.html',

0 commit comments

Comments
 (0)