|
|
|
@ -2,8 +2,11 @@
|
|
|
|
|
from django.http import JsonResponse
|
|
|
|
|
from django.core.exceptions import ValidationError
|
|
|
|
|
from django.contrib.auth.views import login_required
|
|
|
|
|
from django.db.models import Q
|
|
|
|
|
|
|
|
|
|
from whoisdb.models import ASBlock, ASNumber, InetNum
|
|
|
|
|
from domains.models import Domain, ReverseZone
|
|
|
|
|
from dnmgmt.settings import TLD_NAMESERVERS
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def asblockFreeAS(request):
|
|
|
|
@ -46,6 +49,8 @@ def asblockFreeAS(request):
|
|
|
|
|
except ValidationError as e:
|
|
|
|
|
ret["errorMsg"] = e.message
|
|
|
|
|
return JsonResponse(ret)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def freeSubnet(request):
|
|
|
|
|
|
|
|
|
@ -120,4 +125,75 @@ def freeSubnet(request):
|
|
|
|
|
ret["success"] = True
|
|
|
|
|
except ValidationError as e:
|
|
|
|
|
ret["errorMsg"] = e.message
|
|
|
|
|
|
|
|
|
|
return JsonResponse(ret)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def getSubnet(request):
|
|
|
|
|
|
|
|
|
|
ret = {
|
|
|
|
|
"success": False,
|
|
|
|
|
"errorMsg": None,
|
|
|
|
|
"network": None,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
netName = request.GET.get('net', None)
|
|
|
|
|
mnts = request.user.maintainer_set.all()
|
|
|
|
|
nets = InetNum.objects.filter(Q(mnt_by__in=mnts) | Q(mnt_lower__in=mnts)).distinct()
|
|
|
|
|
net = nets.get(handle=netName)
|
|
|
|
|
|
|
|
|
|
ret["success"] = True
|
|
|
|
|
ret["network"] = net.prefix()
|
|
|
|
|
except InetNum.DoesNotExist:
|
|
|
|
|
ret["errorMsg"] = "Chosen network does not exist"
|
|
|
|
|
|
|
|
|
|
return JsonResponse(ret)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def checkDomain(request):
|
|
|
|
|
ret = {
|
|
|
|
|
"success": False,
|
|
|
|
|
"errorMsg": None,
|
|
|
|
|
"domain": None,
|
|
|
|
|
"result": None,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
domainName = Domain.fixName(request.GET.get('domain', ''))
|
|
|
|
|
domain = Domain.objects.get(name=domainName)
|
|
|
|
|
if not domain.canEdit(request.user):
|
|
|
|
|
raise Domain.DoesNotExist()
|
|
|
|
|
|
|
|
|
|
ret["success"] = True
|
|
|
|
|
ret["domain"] = domain.name
|
|
|
|
|
ret["result"] = checkDomain(domain.name, TLD_NAMESERVERS, domain.nameservers.all())
|
|
|
|
|
except Domain.DoesNotExist:
|
|
|
|
|
ret["errorMsg"] = "Domain does not exist"
|
|
|
|
|
|
|
|
|
|
return JsonResponse(ret)
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def checkRzone(request):
|
|
|
|
|
ret = {
|
|
|
|
|
"success": False,
|
|
|
|
|
"errorMsg": None,
|
|
|
|
|
"domain": None,
|
|
|
|
|
"result": None,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
rzonePk = ReverseZone.fixName(request.GET.get('rzone', ''))
|
|
|
|
|
rzone = ReverseZone.objects.get(pk=rzonePk)
|
|
|
|
|
if not rzone.canEdit(request.user):
|
|
|
|
|
raise ReverseZone.DoesNotExist()
|
|
|
|
|
|
|
|
|
|
ret["success"] = True
|
|
|
|
|
ret["result"] = checkDomain(rzone.name, TLD_NAMESERVERS, rzone.nameservers.all())
|
|
|
|
|
except Domain.DoesNotExist:
|
|
|
|
|
ret["errorMsg"] = "ReverseZone does not exist"
|
|
|
|
|
|
|
|
|
|
return JsonResponse(ret)
|
|
|
|
|
|
|
|
|
|