|
20 | 20 | from dojo.filters import ProductFilter, ProductFindingFilter |
21 | 21 | from dojo.forms import ProductForm, EngForm, DeleteProductForm, ProductMetaDataForm, JIRAPKeyForm, JIRAFindingForm, AdHocFindingForm |
22 | 22 | from dojo.models import Product_Type, Finding, Product, Engagement, ScanSettings, Risk_Acceptance, Test, JIRA_PKey, \ |
23 | | - Tool_Product_Settings, Cred_User, Cred_Mapping, Finding_Template, Endpoint |
| 23 | + Tool_Product_Settings, Cred_User, Cred_Mapping, Finding_Template, Endpoint, Test_Type |
24 | 24 | from dojo.utils import get_page_items, add_breadcrumb, get_punchcard_data |
25 | 25 | from custom_field.models import CustomFieldValue, CustomField |
26 | 26 | from dojo.tasks import add_epic_task, add_issue_task |
@@ -569,8 +569,25 @@ def edit_meta_data(request, pid): |
569 | 569 |
|
570 | 570 | @user_passes_test(lambda u: u.is_staff) |
571 | 571 | def ad_hoc_finding(request, pid): |
572 | | - eng=Engagement() |
573 | | - test = Test() |
| 572 | + prod = Product.objects.get(id=pid) |
| 573 | + test = None |
| 574 | + try: |
| 575 | + eng = Engagement.objects.get(product=prod, name="Ad Hoc Engagement") |
| 576 | + tests = Test.objects.filter(engagement=eng) |
| 577 | + |
| 578 | + if len(tests) != 0: |
| 579 | + test = tests[0] |
| 580 | + else: |
| 581 | + test = Test(engagement=eng, test_type=Test_Type.objects.get(name="Pen Test"), |
| 582 | + target_start=datetime.now(tz=localtz), target_end=datetime.now(tz=localtz)) |
| 583 | + test.save() |
| 584 | + except: |
| 585 | + eng = Engagement(name="Ad Hoc Engagement", target_start=datetime.now(tz=localtz), |
| 586 | + target_end=datetime.now(tz=localtz), active=False, product=prod) |
| 587 | + eng.save() |
| 588 | + test = Test(engagement=eng, test_type=Test_Type.objects.get(name="Pen Test"), |
| 589 | + target_start=datetime.now(tz=localtz), target_end=datetime.now(tz=localtz)) |
| 590 | + test.save() |
574 | 591 | form_error = False |
575 | 592 | enabled = False |
576 | 593 | jform = None |
@@ -643,11 +660,12 @@ def ad_hoc_finding(request, pid): |
643 | 660 | messages.ERROR, |
644 | 661 | 'The form has errors, please correct them below.', |
645 | 662 | extra_tags='alert-danger') |
646 | | - add_breadcrumb(parent=test, title="Add Finding", top_level=False, request=request) |
647 | | - return render(request, 'dojo/add_findings.html', |
| 663 | + add_breadcrumb(parent=prod, title="Add Finding", top_level=False, request=request) |
| 664 | + return render(request, 'dojo/ad_hoc_findings.html', |
648 | 665 | {'form': form, |
649 | 666 | 'temp': False, |
650 | | - 'tid': tid, |
| 667 | + 'tid' : test.id, |
| 668 | + 'pid': pid, |
651 | 669 | 'form_error': form_error, |
652 | 670 | 'jform': jform, |
653 | 671 | }) |
|
0 commit comments