diff --git a/dns/dnsManager.py b/dns/dnsManager.py index 180a705ca..a72cc04a5 100755 --- a/dns/dnsManager.py +++ b/dns/dnsManager.py @@ -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() diff --git a/plogical/acl.py b/plogical/acl.py index dd8ce0413..fc7fad526 100755 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -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