def edit_test(request, tid): test = get_object_or_404(Test, pk=tid) form = TestForm(instance=test) if request.method == 'POST': form = TestForm(request.POST, instance=test) if form.is_valid(): new_test = form.save() tags = request.POST.getlist('tags') t = ", ".join('"{0}"'.format(w) for w in tags) new_test.tags = t messages.add_message(request, messages.SUCCESS, 'Test saved.', extra_tags='alert-success') return HttpResponseRedirect( reverse('view_engagement', args=(test.engagement.id, ))) form.initial['target_start'] = test.target_start.date() form.initial['target_end'] = test.target_end.date() form.initial['tags'] = [tag.name for tag in test.tags] form.initial['description'] = test.description product_tab = Product_Tab(test.engagement.product.id, title="Edit Test", tab="engagements") product_tab.setEngagement(test.engagement) return render(request, 'dojo/edit_test.html', { 'test': test, 'product_tab': product_tab, 'form': form, })
def add_tests(request, eid): eng = Engagement.objects.get(id=eid) cred_form = CredMappingForm() cred_form.fields["cred_user"].queryset = Cred_Mapping.objects.filter(engagement=eng).order_by('cred_id') if request.method == 'POST': form = TestForm(request.POST) cred_form = CredMappingForm(request.POST) cred_form.fields["cred_user"].queryset = Cred_Mapping.objects.filter(engagement=eng).order_by('cred_id') if form.is_valid(): new_test = form.save(commit=False) new_test.engagement = eng try: new_test.lead = User.objects.get(id=form['lead'].value()) except: new_test.lead = None pass new_test.save() tags = request.POST.getlist('tags') t = ", ".join(tags) new_test.tags = t #Save the credential to the test if cred_form.is_valid(): if cred_form.cleaned_data['cred_user']: #Select the credential mapping object from the selected list and only allow if the credential is associated with the product cred_user = Cred_Mapping.objects.filter(pk=cred_form.cleaned_data['cred_user'].id, engagement=eid).first() new_f = cred_form.save(commit=False) new_f.test = new_test new_f.cred_id = cred_user.cred_id new_f.save() messages.add_message(request, messages.SUCCESS, 'Test added successfully.', extra_tags='alert-success') create_notification(event='test_added', title='Test added', test=new_test, engagement=eng, url=request.build_absolute_uri(reverse('view_engagement', args=(eng.id,)))) if '_Add Another Test' in request.POST: return HttpResponseRedirect(reverse('add_tests', args=(eng.id,))) elif '_Add Findings' in request.POST: return HttpResponseRedirect(reverse('add_findings', args=(new_test.id,))) elif '_Finished' in request.POST: return HttpResponseRedirect(reverse('view_engagement', args=(eng.id,))) else: form = TestForm() form.initial['target_start'] = eng.target_start form.initial['target_end'] = eng.target_end add_breadcrumb(parent=eng, title="Add Tests", top_level=False, request=request) return render(request, 'dojo/add_tests.html', {'form': form, 'cred_form': cred_form, 'eid': eid })
def edit_test(request, tid): test = get_object_or_404(Test, pk=tid) form = TestForm(instance=test) if request.method == 'POST': form = TestForm(request.POST, instance=test) if form.is_valid(): new_test = form.save() tags = request.POST.getlist('tags') t = ", ".join(tags) new_test.tags = t messages.add_message(request, messages.SUCCESS, 'Test saved.', extra_tags='alert-success') return HttpResponseRedirect(reverse('view_engagement', args=(test.engagement.id,))) form.initial['target_start'] = test.target_start.date() form.initial['target_end'] = test.target_end.date() form.initial['tags'] = [tag.name for tag in test.tags] product_tab = Product_Tab(test.engagement.product.id, title="Edit Test", tab="engagements") product_tab.setEngagement(test.engagement) return render(request, 'dojo/edit_test.html', {'test': test, 'product_tab': product_tab, 'form': form, })
def add_tests(request, eid): eng = Engagement.objects.get(id=eid) if request.method == 'POST': form = TestForm(request.POST) if form.is_valid(): new_test = form.save(commit=False) new_test.engagement = eng new_test.save() tags = request.POST.getlist('tags') t = ", ".join(tags) new_test.tags = t messages.add_message(request, messages.SUCCESS, 'Test added successfully.', extra_tags='alert-success') if '_Add Another Test' in request.POST: return HttpResponseRedirect( reverse('add_tests', args=(eng.id, ))) elif '_Add Findings' in request.POST: return HttpResponseRedirect( reverse('add_findings', args=(new_test.id, ))) elif '_Finished' in request.POST: return HttpResponseRedirect( reverse('view_engagement', args=(eng.id, ))) else: form = TestForm() add_breadcrumb(parent=eng, title="Add Tests", top_level=False, request=request) return render(request, 'dojo/add_tests.html', {'form': form, 'eid': eid})
def add_tests(request, eid): eng = Engagement.objects.get(id=eid) if request.method == 'POST': form = TestForm(request.POST) if form.is_valid(): new_test = form.save(commit=False) new_test.engagement = eng new_test.save() messages.add_message(request, messages.SUCCESS, 'Test added successfully.', extra_tags='alert-success') if '_Add Another Test' in request.POST: return HttpResponseRedirect(reverse('add_tests', args=(eng.id,))) elif '_Add Findings' in request.POST: return HttpResponseRedirect(reverse('add_findings', args=(new_test.id,))) elif '_Finished' in request.POST: return HttpResponseRedirect(reverse('view_engagement', args=(eng.id,))) else: form = TestForm() add_breadcrumb(parent=eng, title="Add Tests", top_level=False, request=request) return render(request, 'dojo/add_tests.html', {'form': form, 'eid': eid})
def edit_test(request, tid): test = get_object_or_404(Test, pk=tid) form = TestForm(instance=test) if request.method == 'POST': form = TestForm(request.POST, instance=test) if form.is_valid(): form.save() messages.add_message(request, messages.SUCCESS, 'Test saved.', extra_tags='alert-success') form.initial['target_start'] = test.target_start.date() form.initial['target_end'] = test.target_end.date() add_breadcrumb(parent=test, title="Edit", top_level=False, request=request) return render(request, 'dojo/edit_test.html', { 'test': test, 'form': form, })
def edit_test(request, tid): test = get_object_or_404(Test, pk=tid) form = TestForm(instance=test) if request.method == 'POST': form = TestForm(request.POST, instance=test) if form.is_valid(): form.save() messages.add_message(request, messages.SUCCESS, 'Test saved.', extra_tags='alert-success') form.initial['target_start'] = test.target_start.date() form.initial['target_end'] = test.target_end.date() add_breadcrumb(parent=test, title="Edit", top_level=False, request=request) return render(request, 'dojo/edit_test.html', {'test': test, 'form': form, })
def edit_test(request, tid): test = get_object_or_404(Test, pk=tid) form = TestForm(instance=test) if request.method == 'POST': form = TestForm(request.POST, instance=test) if form.is_valid(): new_test = form.save() tags = request.POST.getlist('tags') t = ", ".join(tags) new_test.tags = t messages.add_message(request, messages.SUCCESS, 'Test saved.', extra_tags='alert-success') form.initial['tags'] = [tag.name for tag in test.tags] add_breadcrumb(parent=test, title="Edit", top_level=False, request=request) return render(request, 'dojo/edit_test.html', {'test': test, 'form': form, })
def add_tests(request, eid): eng = Engagement.objects.get(id=eid) cred_form = CredMappingForm() cred_form.fields["cred_user"].queryset = Cred_Mapping.objects.filter( engagement=eng).order_by('cred_id') if request.method == 'POST': form = TestForm(request.POST, engagement=eng) cred_form = CredMappingForm(request.POST) cred_form.fields["cred_user"].queryset = Cred_Mapping.objects.filter( engagement=eng).order_by('cred_id') if form.is_valid(): new_test = form.save(commit=False) # set default scan_type as it's used in reimport new_test.scan_type = new_test.test_type.name new_test.engagement = eng try: new_test.lead = User.objects.get(id=form['lead'].value()) except: new_test.lead = None pass # Set status to in progress if a test is added if eng.status != "In Progress" and eng.active is True: eng.status = "In Progress" eng.save() new_test.save() # Save the credential to the test if cred_form.is_valid(): if cred_form.cleaned_data['cred_user']: # Select the credential mapping object from the selected list and only allow if the credential is associated with the product cred_user = Cred_Mapping.objects.filter( pk=cred_form.cleaned_data['cred_user'].id, engagement=eid).first() new_f = cred_form.save(commit=False) new_f.test = new_test new_f.cred_id = cred_user.cred_id new_f.save() messages.add_message( request, messages.SUCCESS, 'Test added successfully.', extra_tags='alert-success') notifications_helper.notify_test_created(new_test) if '_Add Another Test' in request.POST: return HttpResponseRedirect( reverse('add_tests', args=(eng.id, ))) elif '_Add Findings' in request.POST: return HttpResponseRedirect( reverse('add_findings', args=(new_test.id, ))) elif '_Finished' in request.POST: return HttpResponseRedirect( reverse('view_engagement', args=(eng.id, ))) else: form = TestForm(engagement=eng) form.initial['target_start'] = eng.target_start form.initial['target_end'] = eng.target_end form.initial['lead'] = request.user add_breadcrumb( parent=eng, title="Add Tests", top_level=False, request=request) product_tab = Product_Tab(eng.product.id, title="Add Tests", tab="engagements") product_tab.setEngagement(eng) return render(request, 'dojo/add_tests.html', { 'product_tab': product_tab, 'form': form, 'cred_form': cred_form, 'eid': eid, 'eng': eng })