2017-10-24 19:16:36 +05:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
|
|
from django.shortcuts import render,redirect
|
|
|
|
|
from django.http import HttpResponse
|
|
|
|
|
import json
|
|
|
|
|
from plogical.dnsUtilities import DNS
|
|
|
|
|
from loginSystem.models import Administrator
|
|
|
|
|
import os
|
|
|
|
|
from loginSystem.views import loadLoginPage
|
|
|
|
|
from models import Domains,Records
|
2018-03-01 13:22:01 +05:00
|
|
|
from re import match,I,M
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
# Create your views here.
|
|
|
|
|
|
|
|
|
|
def loadDNSHome(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=userID)
|
|
|
|
|
|
|
|
|
|
return render(request,'dns/index.html',{"type":admin.type})
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
def createNameserver(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=userID)
|
|
|
|
|
|
|
|
|
|
if admin.type == 3:
|
|
|
|
|
return HttpResponse("You don't have enough priviliges to access this page.")
|
|
|
|
|
|
|
|
|
|
return render(request,"dns/createNameServer.html")
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def NSCreation(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
domainForNS = data['domainForNS']
|
|
|
|
|
ns1 = data['ns1']
|
|
|
|
|
ns2 = data['ns2']
|
|
|
|
|
firstNSIP = data['firstNSIP']
|
|
|
|
|
secondNSIP = data['secondNSIP']
|
|
|
|
|
|
|
|
|
|
if Domains.objects.filter(name=domainForNS).count() == 0:
|
|
|
|
|
newZone = Domains(admin=admin,name=domainForNS, type="NATIVE")
|
|
|
|
|
newZone.save()
|
|
|
|
|
|
|
|
|
|
content = "ns1." + domainForNS + " hostmaster." + domainForNS + " 1 10800 3600 604800 3600"
|
|
|
|
|
|
|
|
|
|
soaRecord = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=domainForNS,
|
|
|
|
|
type="SOA",
|
|
|
|
|
content=content,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
soaRecord.save()
|
|
|
|
|
|
|
|
|
|
## NS1
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=domainForNS,
|
|
|
|
|
type="NS",
|
|
|
|
|
content=ns1,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=ns1,
|
|
|
|
|
type="A",
|
|
|
|
|
content=firstNSIP,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
## NS2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=domainForNS,
|
|
|
|
|
type="NS",
|
|
|
|
|
content=ns2,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=ns2,
|
|
|
|
|
type="A",
|
|
|
|
|
content=secondNSIP,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
final_dic = {'NSCreation': 1, 'error_message': "None"}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
|
|
newZone = Domains.objects.get(name=domainForNS)
|
|
|
|
|
|
|
|
|
|
## NS1
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=domainForNS,
|
|
|
|
|
type="NS",
|
|
|
|
|
content=ns1,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
2018-02-10 12:10:38 +05:00
|
|
|
name=ns1,
|
2017-10-24 19:16:36 +05:00
|
|
|
type="A",
|
|
|
|
|
content=firstNSIP,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
## NS2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=domainForNS,
|
|
|
|
|
type="NS",
|
|
|
|
|
content=ns2,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
2018-02-10 12:10:38 +05:00
|
|
|
name=ns2,
|
2017-10-24 19:16:36 +05:00
|
|
|
type="A",
|
|
|
|
|
content=secondNSIP,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
|
|
|
|
|
final_dic = {'NSCreation': 1, 'error_message': "None"}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
final_dic = {'NSCreation': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
except KeyError, msg:
|
|
|
|
|
final_dic = {'NSCreation': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def createDNSZone(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=userID)
|
|
|
|
|
|
|
|
|
|
return render(request,'dns/createDNSZone.html')
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
def zoneCreation(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
zoneDomain = data['zoneDomain']
|
|
|
|
|
|
|
|
|
|
newZone = Domains(admin=admin, name=zoneDomain, type="NATIVE")
|
|
|
|
|
newZone.save()
|
|
|
|
|
|
|
|
|
|
content = "ns1." + zoneDomain + " hostmaster." + zoneDomain + " 1 10800 3600 604800 3600"
|
|
|
|
|
|
|
|
|
|
soaRecord = Records(domainOwner=newZone,
|
|
|
|
|
domain_id=newZone.id,
|
|
|
|
|
name=zoneDomain,
|
|
|
|
|
type="SOA",
|
|
|
|
|
content=content,
|
|
|
|
|
ttl=3600,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
soaRecord.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final_dic = {'zoneCreation': 1}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except BaseException,msg:
|
|
|
|
|
|
|
|
|
|
final_dic = {'zoneCreation': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
except KeyError,msg:
|
|
|
|
|
final_dic = {'zoneCreation': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def addDeleteDNSRecords(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
|
domainsList = []
|
|
|
|
|
|
2018-02-13 11:45:44 +05:00
|
|
|
if admin.type == 1:
|
|
|
|
|
domains = Domains.objects.all()
|
|
|
|
|
for items in domains:
|
|
|
|
|
domainsList.append(items.name)
|
|
|
|
|
else:
|
2018-03-02 01:20:16 +05:00
|
|
|
websites = admin.websites_set.all()
|
|
|
|
|
|
|
|
|
|
for web in websites:
|
|
|
|
|
try:
|
|
|
|
|
tempDomain = Domains.objects.get(name = web.domain)
|
|
|
|
|
domainsList.append(web.domain)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
return render(request, 'dns/addDeleteDNSRecords.html',{"domainsList":domainsList})
|
|
|
|
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
def getCurrentRecordsForDomain(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
zoneDomain = data['selectedZone']
|
2018-04-23 19:23:03 +05:00
|
|
|
currentSelection = data['currentSelection']
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
domain = Domains.objects.get(name=zoneDomain)
|
|
|
|
|
|
|
|
|
|
records = Records.objects.filter(domain_id=domain.id)
|
|
|
|
|
|
|
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
|
|
|
|
|
2018-04-23 19:23:03 +05:00
|
|
|
fetchType = ""
|
|
|
|
|
|
|
|
|
|
if currentSelection == 'aRecord':
|
|
|
|
|
fetchType = 'A'
|
|
|
|
|
elif currentSelection == 'aaaaRecord':
|
|
|
|
|
fetchType = 'AAAA'
|
|
|
|
|
elif currentSelection == 'cNameRecord':
|
|
|
|
|
fetchType = 'CNAME'
|
|
|
|
|
elif currentSelection == 'mxRecord':
|
|
|
|
|
fetchType = 'MX'
|
|
|
|
|
elif currentSelection == 'txtRecord':
|
|
|
|
|
fetchType = 'TXT'
|
|
|
|
|
elif currentSelection == 'spfRecord':
|
|
|
|
|
fetchType = 'SPF'
|
|
|
|
|
elif currentSelection == 'nsRecord':
|
|
|
|
|
fetchType = 'NS'
|
|
|
|
|
elif currentSelection == 'soaRecord':
|
|
|
|
|
fetchType = 'SOA'
|
|
|
|
|
elif currentSelection == 'srvRecord':
|
|
|
|
|
fetchType = 'SRV'
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
for items in records:
|
2018-04-23 19:23:03 +05:00
|
|
|
if items.type == fetchType:
|
|
|
|
|
dic = {'id': items.id,
|
|
|
|
|
'type': items.type,
|
|
|
|
|
'name': items.name,
|
|
|
|
|
'content': items.content,
|
|
|
|
|
'priority': items.prio,
|
|
|
|
|
'ttl':items.ttl
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
|
|
|
|
else:
|
|
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
2017-10-24 19:16:36 +05:00
|
|
|
else:
|
2018-04-23 19:23:03 +05:00
|
|
|
continue
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'fetchStatus': 1, 'error_message': "None","data":json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
except BaseException,msg:
|
|
|
|
|
final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError:
|
|
|
|
|
final_dic = {'fetchStatus': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def addDNSRecord(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
zoneDomain = data['selectedZone']
|
|
|
|
|
recordType = data['recordType']
|
|
|
|
|
recordName = data['recordName']
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl = int(data['ttl'])
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-03-01 13:22:01 +05:00
|
|
|
#admin = Administrator.objects.get(pk=val)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
zone = Domains.objects.get(name=zoneDomain)
|
2018-03-01 13:22:01 +05:00
|
|
|
value = ""
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
if recordType == "A":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
recordContentA = data['recordContentA'] ## IP or ponting value
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
2018-03-01 13:22:01 +05:00
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
record = Records( domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="A",
|
|
|
|
|
content=recordContentA,
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl=ttl,
|
2017-10-24 19:16:36 +05:00
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1 )
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "MX":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
|
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
|
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
2018-02-17 15:34:59 +05:00
|
|
|
recordContentMX = data['recordContentMX']
|
2018-04-23 19:23:03 +05:00
|
|
|
priority = data['priority']
|
2017-10-24 19:16:36 +05:00
|
|
|
record = Records(domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
2018-04-23 19:23:03 +05:00
|
|
|
name=value,
|
2017-10-24 19:16:36 +05:00
|
|
|
type="MX",
|
2018-04-23 19:23:03 +05:00
|
|
|
content=recordContentMX,
|
|
|
|
|
ttl=ttl,
|
|
|
|
|
prio=priority,
|
2017-10-24 19:16:36 +05:00
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "AAAA":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
recordContentAAAA = data['recordContentAAAA'] ## IP or ponting value
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
2018-03-01 13:22:01 +05:00
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
record = Records( domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="AAAA",
|
|
|
|
|
content=recordContentAAAA,
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl=ttl,
|
2017-10-24 19:16:36 +05:00
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1 )
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "CNAME":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
|
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
|
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
recordContentCNAME = data['recordContentCNAME'] ## IP or ponting value
|
|
|
|
|
record = Records( domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="CNAME",
|
|
|
|
|
content=recordContentCNAME,
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl=ttl,
|
2017-10-24 19:16:36 +05:00
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1 )
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "SPF":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
2018-03-01 13:22:01 +05:00
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
recordContentSPF = data['recordContentSPF'] ## IP or ponting value
|
|
|
|
|
record = Records( domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="SPF",
|
|
|
|
|
content=recordContentSPF,
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl=ttl,
|
2017-10-24 19:16:36 +05:00
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1 )
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "TXT":
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
2018-03-01 13:22:01 +05:00
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
recordContentTXT = data['recordContentTXT'] ## IP or ponting value
|
|
|
|
|
record = Records( domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="TXT",
|
|
|
|
|
content=recordContentTXT,
|
2018-04-23 19:23:03 +05:00
|
|
|
ttl=ttl,
|
2017-10-24 19:16:36 +05:00
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1 )
|
|
|
|
|
record.save()
|
2018-04-23 19:23:03 +05:00
|
|
|
elif recordType == "SOA":
|
|
|
|
|
|
|
|
|
|
recordContentSOA = data['recordContentSOA']
|
|
|
|
|
|
|
|
|
|
records = Records(domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=zoneDomain,
|
|
|
|
|
type="SOA",
|
|
|
|
|
content=recordContentSOA,
|
|
|
|
|
ttl=ttl,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
records.save()
|
|
|
|
|
elif recordType == "NS":
|
|
|
|
|
|
|
|
|
|
recordContentNS = data['recordContentNS']
|
|
|
|
|
|
|
|
|
|
if recordContentNS == "@":
|
|
|
|
|
recordContentNS = "ns1." + zoneDomain
|
|
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordContentNS, M | I):
|
|
|
|
|
recordContentNS = recordContentNS
|
|
|
|
|
else:
|
|
|
|
|
recordContentNS = recordContentNS + "." + zoneDomain
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=zoneDomain,
|
|
|
|
|
type="NS",
|
|
|
|
|
content=recordContentNS,
|
|
|
|
|
ttl=ttl,
|
|
|
|
|
prio=0,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
|
|
|
|
elif recordType == "SRV":
|
|
|
|
|
|
|
|
|
|
if recordName == "@":
|
|
|
|
|
value = zoneDomain
|
|
|
|
|
## re.match
|
|
|
|
|
elif match(r'([\da-z\.-]+\.[a-z\.]{2,12}|[\d\.]+)([\/:?=&#]{1}[\da-z\.-]+)*[\/\?]?', recordName, M | I):
|
|
|
|
|
value = recordName
|
|
|
|
|
else:
|
|
|
|
|
value = recordName + "." + zoneDomain
|
|
|
|
|
|
|
|
|
|
recordContentSRV = data['recordContentSRV']
|
|
|
|
|
priority = data['priority']
|
|
|
|
|
|
|
|
|
|
record = Records(domainOwner=zone,
|
|
|
|
|
domain_id=zone.id,
|
|
|
|
|
name=value,
|
|
|
|
|
type="SRV",
|
|
|
|
|
content=recordContentSRV,
|
|
|
|
|
ttl=ttl,
|
|
|
|
|
prio=priority,
|
|
|
|
|
disabled=0,
|
|
|
|
|
auth=1)
|
|
|
|
|
record.save()
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
final_dic = {'add_status': 1, 'error_message': "None"}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except BaseException,msg:
|
|
|
|
|
final_dic = {'add_status': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError,msg:
|
|
|
|
|
final_dic = {'add_status': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deleteDNSRecord(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
id = data['id']
|
|
|
|
|
|
|
|
|
|
delRecord = Records.objects.get(id=id)
|
|
|
|
|
delRecord.delete()
|
|
|
|
|
|
|
|
|
|
final_dic = {'delete_status': 1, 'error_message': "None"}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except BaseException,msg:
|
|
|
|
|
final_dic = {'delete_status': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError,msg:
|
|
|
|
|
final_dic = {'delete_status': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deleteDNSZone(request):
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
|
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
|
domainsList = []
|
|
|
|
|
|
2018-04-18 15:57:49 +05:00
|
|
|
if admin.type == 1:
|
|
|
|
|
domains = Domains.objects.all()
|
|
|
|
|
for items in domains:
|
|
|
|
|
domainsList.append(items.name)
|
|
|
|
|
else:
|
|
|
|
|
websites = admin.websites_set.all()
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-04-18 15:57:49 +05:00
|
|
|
for web in websites:
|
|
|
|
|
try:
|
|
|
|
|
tempDomain = Domains.objects.get(name = web.domain)
|
|
|
|
|
domainsList.append(web.domain)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
2017-10-24 19:16:36 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
return render(request, 'dns/deleteDNSZone.html',{"domainsList":domainsList})
|
|
|
|
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def submitZoneDeletion(request):
|
|
|
|
|
try:
|
|
|
|
|
val = request.session['userID']
|
|
|
|
|
try:
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
zoneDomain = data['zoneDomain']
|
|
|
|
|
|
|
|
|
|
delZone = Domains.objects.get(name=zoneDomain)
|
|
|
|
|
delZone.delete()
|
|
|
|
|
|
|
|
|
|
final_dic = {'delete_status': 1, 'error_message': "None"}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except BaseException,msg:
|
|
|
|
|
final_dic = {'delete_status': 0, 'error_message': str(msg)}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError,msg:
|
|
|
|
|
final_dic = {'delete_status': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|