Merge pull request #13 from yogeshojha/addNewEngineForm

Add new engine form
This commit is contained in:
Yogesh Ojha
2020-05-13 18:33:39 +05:30
committed by GitHub
16 changed files with 321 additions and 14 deletions
+31
View File
@@ -0,0 +1,31 @@
from django import forms
from scanEngine.models import EngineType
class AddEngineForm(forms.ModelForm):
class Meta:
model = EngineType
fields = '__all__'
scan_type_name = forms.CharField(
required=True,
widget=forms.TextInput(
attrs={
"class": "form-control",
"id": "scan_engine_name",
"placeholder":"Custom Engine"
}
))
subdomain_discovery = forms.BooleanField(
required=True,
widget=forms.CheckboxInput(attrs={"checked":"", "disabled":""}))
dir_file_search = forms.BooleanField(
required=False,
widget=forms.CheckboxInput(attrs={}))
subdomain_takeover = forms.BooleanField(
required=False,
widget=forms.CheckboxInput(attrs={}))
param_discovery = forms.BooleanField(
required=False,
widget=forms.CheckboxInput(attrs={}))
port_scan = forms.BooleanField(
required=False,
widget=forms.CheckboxInput(attrs={"checked":""}))
@@ -0,0 +1,33 @@
# Generated by Django 3.0.6 on 2020-05-13 12:13
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='dir_file_search',
field=models.BooleanField(blank=True, default=False),
),
migrations.AlterField(
model_name='enginetype',
name='param_discovery',
field=models.BooleanField(blank=True, default=False),
),
migrations.AlterField(
model_name='enginetype',
name='port_scan',
field=models.BooleanField(blank=True, default=False),
),
migrations.AlterField(
model_name='enginetype',
name='subdomain_takeover',
field=models.BooleanField(blank=True, default=False),
),
]
@@ -0,0 +1,38 @@
# Generated by Django 3.0.6 on 2020-05-13 12:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0002_auto_20200513_1213'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='dir_file_search',
field=models.BooleanField(),
),
migrations.AlterField(
model_name='enginetype',
name='param_discovery',
field=models.BooleanField(),
),
migrations.AlterField(
model_name='enginetype',
name='port_scan',
field=models.BooleanField(),
),
migrations.AlterField(
model_name='enginetype',
name='subdomain_discovery',
field=models.BooleanField(),
),
migrations.AlterField(
model_name='enginetype',
name='subdomain_takeover',
field=models.BooleanField(),
),
]
@@ -0,0 +1,18 @@
# Generated by Django 3.0.6 on 2020-05-13 12:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0003_auto_20200513_1229'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='port_scan',
field=models.BooleanField(default=True),
),
]
@@ -0,0 +1,18 @@
# Generated by Django 3.0.6 on 2020-05-13 12:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0004_auto_20200513_1234'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='param_discovery',
field=models.BooleanField(default=True),
),
]
@@ -0,0 +1,23 @@
# Generated by Django 3.0.6 on 2020-05-13 12:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0005_auto_20200513_1235'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='param_discovery',
field=models.BooleanField(),
),
migrations.AlterField(
model_name='enginetype',
name='port_scan',
field=models.BooleanField(),
),
]
@@ -0,0 +1,18 @@
# Generated by Django 3.0.6 on 2020-05-13 12:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('scanEngine', '0006_auto_20200513_1235'),
]
operations = [
migrations.AlterField(
model_name='enginetype',
name='subdomain_discovery',
field=models.BooleanField(default=True),
),
]
+5 -5
View File
@@ -8,11 +8,11 @@ SCAN_TYPES = ('subdomain_discovery',
class EngineType(models.Model):
scan_type_name = models.CharField(max_length=200)
subdomain_discovery = models.BooleanField(default=False)
dir_file_search = models.BooleanField(default=False)
subdomain_takeover = models.BooleanField(default=False)
param_discovery = models.BooleanField(default=False)
port_scan = models.BooleanField(default=False)
subdomain_discovery = models.BooleanField(default=True)
dir_file_search = models.BooleanField()
subdomain_takeover = models.BooleanField()
param_discovery = models.BooleanField()
port_scan = models.BooleanField()
def __str__(self):
return self.scan_type_name
@@ -0,0 +1,86 @@
<div class="col-lg-12 layout-spacing">
<div class="statbox widget box box-shadow">
<div class="widget-header">
<div class="row">
<div class="col-12">
<h4 class="text-info">Add Scan Engine Name</h4>
{{ form.errors }}
{{ form.non_field_errors }}
</div>
</div>
</div>
<div class="widget-content widget-content-area">
<form class="simple-example" method="POST">
{% csrf_token %}
<div class="form-row layout-spacing">
<div class="col-12">
<label for="domainName" class="text-info">Engine name</label>
{{ form.scan_type_name }}
</div>
</div>
<div class="form-row layout-spacing">
<table>
<tr>
<td>
<h6 style="margin-right:1%">Subdomain Discovery</h6>
<span class="preview">(Selected by Default)</span>
</td>
<td>
<input type="hidden" name="subdomain_discovery" value="on">
<label class="switch s-icons s-outline s-outline-info">
{{form.subdomain_discovery}}
<span class="slider round"></span>
</label>
</td>
</tr>
<tr>
<td>
<h6 style="margin-right:1%">Subdomain Takeover</h6>
</td>
<td>
<label class="switch s-icons s-outline s-outline-info">
{{form.subdomain_takeover}}
<span class="slider round"></span>
</label>
</td>
</tr>
<tr>
<td>
<h6 style="margin-right:1%">Directory and Files Search</h6>
</td>
<td>
<label class="switch s-icons s-outline s-outline-info">
{{form.dir_file_search}}
<span class="slider round"></span>
</label>
</td>
</tr>
<tr>
<td>
<h6 style="margin-right:1%">Parameter Discovery</h6>
</td>
<td>
<label class="switch s-icons s-outline s-outline-info">
{{form.param_discovery}}
<span class="slider round"></span>
</label>
</td>
</tr>
<tr>
<td>
<h6 style="margin-right:1%">Port Scan</h6>
</td>
<td>
<label class="switch s-icons s-outline s-outline-info">
{{form.port_scan}}
<span class="slider round"></span>
</label>
</td>
</tr>
</table>
</div>
<button class="btn btn-primary submit-fn mt-2 float-right" type="submit">Add Engine</button>
</form>
</div>
</div>
</div>
@@ -0,0 +1,23 @@
{% extends 'base/base.html' %}
{% load static %}
{% block title %}
Add Engine Type
{% endblock title %}
{% block custom_js_css_link %}
<link rel="stylesheet" type="text/css" href="{% static 'assets/css/forms/switches.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'assets/css/custom.css' %}">
{% endblock custom_js_css_link %}
{% block main_content %}
{% include 'scanEngine/_items/add_engine_form.html'%}
{% endblock main_content %}
{% block page_level_script %}
<script src="{% static 'assets/js/scrollspyNav.js' %}"></script>
<script src="{% static 'plugins/jquery-step/jquery.steps.min.js' %}"></script>
<script src="{% static 'plugins/jquery-step/custom-jquery.steps.js' %}"></script>
{% endblock page_level_script %}
+1 -1
View File
@@ -24,7 +24,7 @@ Scan Engine
<h4 class="text-primary">Scan Engines</h4>
</div>
<div class="col-6">
<button class="btn btn-outline-primary mb-2 float-right">Add New Engine</button>
<a href="{% url 'add_engine' %}" class="btn btn-outline-primary mb-2 float-right">Add New Engine</a>
</div>
</div>
</div>
+1
View File
@@ -5,4 +5,5 @@ from . import views
urlpatterns = [
path('', views.index, name='scan_engine_index'),
path('add', views.add_engine, name='add_engine'),
]
+20 -2
View File
@@ -1,7 +1,25 @@
from django.shortcuts import render
from .models import EngineType
from scanEngine.models import EngineType
from scanEngine.forms import AddEngineForm
from django.contrib import messages
from django import http
from django.urls import reverse
def index(request):
engine_type = EngineType.objects.all().order_by('id')
context = {'scan_engine_nav_active': 'true', 'engine_type': engine_type}
context = {'scan_engine_nav_active': 'true',
'engine_type': engine_type,
}
return render(request, 'scanEngine/index.html', context)
def add_engine(request):
form = AddEngineForm()
if request.method == "POST":
form = AddEngineForm(request.POST)
if form.is_valid():
form.save()
messages.add_message(request, messages.INFO, 'Scan Engine Added successfully')
return http.HttpResponseRedirect(reverse('scan_engine_index'))
context = {'scan_engine_nav_active': 'true',
'form': form}
return render(request, 'scanEngine/add_engine.html', context)
+5
View File
@@ -0,0 +1,5 @@
.vertical-align-content{
display: flex;
align-items: center;
flex-wrap: wrap;
}
-5
View File
@@ -2,11 +2,6 @@ from django import forms
from .models import Domain
from .validators import validate_domain
class AddDomainForm(forms.ModelForm):
class Meta:
model = Domain
fields = ['domain_name', 'domain_description']
class RawDomainForm(forms.Form):
domain_name = forms.CharField(
validators=[validate_domain],
+1 -1
View File
@@ -2,7 +2,7 @@ from django.shortcuts import render, get_object_or_404
from django import http
from .models import Domain
from django.contrib import messages
from .forms import AddDomainForm, RawDomainForm, UpdateDomainForm
from .forms import RawDomainForm, UpdateDomainForm
from django.utils import timezone
from django.urls import reverse