bug fix: dns manager

This commit is contained in:
Usman Nasir
2019-09-05 00:41:40 +05:00
parent 74c1c668f1
commit f7cb9bd0a9
2 changed files with 28 additions and 5 deletions

View File

@@ -157,7 +157,7 @@ class DNSManager:
if not os.path.exists('/home/cyberpanel/powerdns'):
return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0})
domainsList = ACLManager.findAllDomains(currentACL, userID)
domainsList = ACLManager.findAllWebsites(currentACL, userID)
return render(request, 'dns/addDeleteDNSRecords.html', {"domainsList": domainsList, "status": 1})
@@ -177,7 +177,7 @@ class DNSManager:
currentSelection = data['currentSelection']
admin = Administrator.objects.get(pk=userID)
if ACLManager.checkOwnershipZone(zoneDomain, admin, currentACL) == 1:
if ACLManager.checkOwnership(zoneDomain, admin, currentACL) == 1:
pass
else:
return ACLManager.loadErrorJson()
@@ -254,7 +254,7 @@ class DNSManager:
ttl = int(data['ttl'])
admin = Administrator.objects.get(pk=userID)
if ACLManager.checkOwnershipZone(zoneDomain, admin, currentACL) == 1:
if ACLManager.checkOwnership(zoneDomain, admin, currentACL) == 1:
pass
else:
return ACLManager.loadErrorJson()
@@ -424,7 +424,7 @@ class DNSManager:
admin = Administrator.objects.get(pk=userID)
if ACLManager.checkOwnershipZone(delRecord.domainOwner.name, admin, currentACL) == 1:
if ACLManager.checkOwnership(delRecord.domainOwner.name, admin, currentACL) == 1:
pass
else:
return ACLManager.loadError()

View File

@@ -463,6 +463,29 @@ class ACLManager:
return domainsList
@staticmethod
def findAllWebsites(currentACL, userID):
domainsList = []
if currentACL['admin'] == 1:
domains = Websites.objects.all()
for items in domains:
domainsList.append(items.domain)
else:
admin = Administrator.objects.get(pk=userID)
domains = admin.websites_set.all()
for items in domains:
domainsList.append(items.domain)
admins = Administrator.objects.filter(owner=admin.pk)
for items in admins:
doms = items.websites_set.all()
for dom in doms:
domainsList.append(dom.domain)
return domainsList
@staticmethod
def checkOwnership(domain, admin, currentACL):
@@ -496,7 +519,7 @@ class ACLManager:
if currentACL['admin'] == 1:
return 1
elif domain.admin == admin:
elif domain.admin.admin == admin:
return 1
elif domain.admin.owner == admin.pk:
return 1