From d85f9a3dbb7d4eece481c4d9c471237f7f2a55c9 Mon Sep 17 00:00:00 2001 From: Yogesh Ojha Date: Sat, 10 Oct 2020 21:21:02 +0530 Subject: [PATCH] vulnerability serializer addeds --- startScan/api/serializers.py | 9 ++++++++- startScan/api/urls.py | 4 +++- startScan/api/views.py | 19 +++++++++++++++++-- .../migrations/0007_auto_20201010_1546.py | 17 +++++++++++++++++ startScan/models.py | 2 +- 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 startScan/migrations/0007_auto_20201010_1546.py diff --git a/startScan/api/serializers.py b/startScan/api/serializers.py index 28fb646d..549e16f8 100644 --- a/startScan/api/serializers.py +++ b/startScan/api/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from startScan.models import ScannedHost, ScanHistory, WayBackEndPoint +from startScan.models import ScannedHost, ScanHistory, WayBackEndPoint, VulnerabilityScan class ScanHistorySerializer(serializers.ModelSerializer): @@ -16,3 +16,10 @@ class EndpointSerializer(serializers.ModelSerializer): class Meta: model = WayBackEndPoint fields = '__all__' + + +class VulnerabilitySerializer(serializers.ModelSerializer): + + class Meta: + model = VulnerabilityScan + fields = '__all__' diff --git a/startScan/api/urls.py b/startScan/api/urls.py index 696a0aec..aaac5f2e 100644 --- a/startScan/api/urls.py +++ b/startScan/api/urls.py @@ -1,7 +1,7 @@ from django.conf.urls import url, include from django.urls import path from rest_framework import routers -from .views import ScanHistoryViewSet, EndPointViewSet +from .views import ScanHistoryViewSet, EndPointViewSet, VulnerabilityViewSet app_name = 'startScan' router = routers.DefaultRouter() @@ -10,6 +10,8 @@ router.register(r'scanHistory', ScanHistoryViewSet) router.register(r'listEndpoints', EndPointViewSet) +router.register(r'vulnerability', VulnerabilityViewSet) + urlpatterns = [ url('^', include(router.urls)), diff --git a/startScan/api/views.py b/startScan/api/views.py index 65689c24..ae6dd3cc 100644 --- a/startScan/api/views.py +++ b/startScan/api/views.py @@ -1,6 +1,6 @@ -from startScan.api.serializers import ScanHistorySerializer, EndpointSerializer +from startScan.api.serializers import ScanHistorySerializer, EndpointSerializer, VulnerabilitySerializer from rest_framework import viewsets -from startScan.models import ScannedHost, ScanHistory, WayBackEndPoint +from startScan.models import ScannedHost, ScanHistory, WayBackEndPoint, VulnerabilityScan from rest_framework.response import Response from rest_framework import status from rest_framework.decorators import api_view, action @@ -33,3 +33,18 @@ class EndPointViewSet(viewsets.ModelViewSet): return self.queryset else: return self.queryset + + +class VulnerabilityViewSet(viewsets.ModelViewSet): + queryset = VulnerabilityScan.objects.all() + serializer_class = VulnerabilitySerializer + + def get_queryset(self): + req = self.request + vulnerability_of = req.query_params.get('vulnerability_of') + if vulnerability_of: + self.queryset = WayBackEndPoint.objects.filter( + vulnerability_of__id=vulnerability_of) + return self.queryset + else: + return self.queryset diff --git a/startScan/migrations/0007_auto_20201010_1546.py b/startScan/migrations/0007_auto_20201010_1546.py new file mode 100644 index 00000000..75d4b6e6 --- /dev/null +++ b/startScan/migrations/0007_auto_20201010_1546.py @@ -0,0 +1,17 @@ +# Generated by Django 3.0.7 on 2020-10-10 15:46 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('startScan', '0006_vulnerabilityscanner'), + ] + + operations = [ + migrations.RenameModel( + old_name='VulnerabilityScanner', + new_name='VulnerabilityScan', + ), + ] diff --git a/startScan/models.py b/startScan/models.py index 76b500af..d9efd213 100644 --- a/startScan/models.py +++ b/startScan/models.py @@ -59,7 +59,7 @@ class ScanActivity(models.Model): return str(self.title) -class VulnerabilityScanner(models.Model): +class VulnerabilityScan(models.Model): vulnerability_of = models.ForeignKey(ScanHistory, on_delete=models.CASCADE) url = models.CharField(max_length=1000) title = models.CharField(max_length=400)