2727 ClosedFingingSuperFilter , TemplateFindingFilter
2828from dojo .forms import NoteForm , CloseFindingForm , FindingForm , PromoteFindingForm , FindingTemplateForm , \
2929 DeleteFindingTemplateForm , FindingImageFormSet , JIRAFindingForm , ReviewFindingForm , ClearFindingReviewForm , \
30- DefectFindingForm , StubFindingForm , ApplyFindingTemplateForm
30+ DefectFindingForm , StubFindingForm , DeleteFindingForm , DeleteStubFindingForm , ApplyFindingTemplateForm
3131from dojo .models import Product_Type , Finding , Notes , \
3232 Risk_Acceptance , BurpRawRequestResponse , Stub_Finding , Endpoint , Finding_Template , FindingImage , \
3333 FindingImageAccessToken , JIRA_Issue , JIRA_PKey , JIRA_Conf , Dojo_User , Cred_User , Cred_Mapping , Test
@@ -322,19 +322,30 @@ def reopen_finding(request, fid):
322322 extra_tags = 'alert-success' )
323323 return HttpResponseRedirect (reverse ('view_finding' , args = (finding .id ,)))
324324
325-
326325@user_passes_test (lambda u : u .is_staff )
327326def delete_finding (request , fid ):
328327 finding = get_object_or_404 (Finding , id = fid )
329- tid = finding .test .id
330- del finding .tags
331- finding .delete ()
332- messages .add_message (request ,
333- messages .SUCCESS ,
334- 'Finding deleted successfully.' ,
335- extra_tags = 'alert-success' )
336- return HttpResponseRedirect (reverse ('view_test' , args = (tid ,)))
337328
329+ form = DeleteFindingForm (instance = finding )
330+
331+ if request .method == 'POST' :
332+ form = DeleteFindingForm (request .POST , instance = finding )
333+ if form .is_valid ():
334+ tid = finding .test .id
335+ del finding .tags
336+ finding .delete ()
337+ messages .add_message (request ,
338+ messages .SUCCESS ,
339+ 'Finding deleted successfully.' ,
340+ extra_tags = 'alert-success' )
341+ return HttpResponseRedirect (reverse ('view_test' , args = (tid ,)))
342+ else :
343+ messages .add_message (request ,
344+ messages .ERROR ,
345+ 'Unable to delete finding, please try again.' ,
346+ extra_tags = 'alert-danger' )
347+ else :
348+ return HttpResponseForbidden ()
338349
339350@user_passes_test (lambda u : u .is_staff )
340351def edit_finding (request , fid ):
@@ -697,20 +708,30 @@ def add_stub_finding(request, tid):
697708 add_breadcrumb (title = "Add Stub Finding" , top_level = False , request = request )
698709 return HttpResponseRedirect (reverse ('view_test' , args = (tid ,)))
699710
700-
701711@user_passes_test (lambda u : u .is_staff )
702712def delete_stub_finding (request , fid ):
703713 finding = get_object_or_404 (Stub_Finding , id = fid )
704- tid = finding .test .id
705- if hasattr (finding , 'tags' ):
706- del finding .tags
707- finding .delete ()
708- messages .add_message (request ,
709- messages .SUCCESS ,
710- 'Potential Finding deleted successfully.' ,
711- extra_tags = 'alert-success' )
712- return HttpResponseRedirect (reverse ('view_test' , args = (tid ,)))
714+ form = DeleteStubFindingForm (instance = finding )
713715
716+ if request .method == 'POST' :
717+ form = DeleteStubFindingForm (request .POST , instance = finding )
718+ if form .is_valid ():
719+ tid = finding .test .id
720+ if hasattr (finding , 'tags' ):
721+ del finding .tags
722+ finding .delete ()
723+ messages .add_message (request ,
724+ messages .SUCCESS ,
725+ 'Potential Finding deleted successfully.' ,
726+ extra_tags = 'alert-success' )
727+ return HttpResponseRedirect (reverse ('view_test' , args = (tid ,)))
728+ else :
729+ messages .add_message (request ,
730+ messages .ERROR ,
731+ 'Unable to delete potential finding, please try again.' ,
732+ extra_tags = 'alert-danger' )
733+ else :
734+ return HttpResponseForbidden ()
714735
715736@user_passes_test (lambda u : u .is_staff )
716737def promote_to_finding (request , fid ):
@@ -725,7 +746,7 @@ def promote_to_finding(request, fid):
725746 jira_available = True
726747 else :
727748 jform = None
728-
749+
729750 form = PromoteFindingForm (initial = {'title' : finding .title ,
730751 'date' : finding .date ,
731752 'severity' : finding .severity ,
0 commit comments