mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-09-23 10:14:57 +02:00
Merge pull request #13 from yogeshojha/addNewEngineForm
Add new engine form
This commit is contained in:
@@ -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),
|
||||
),
|
||||
]
|
||||
@@ -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 %}
|
||||
@@ -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>
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
.vertical-align-content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user