diff --git a/dns/dnsManager.py b/dns/dnsManager.py index 92dac0f9e..7142455b6 100755 --- a/dns/dnsManager.py +++ b/dns/dnsManager.py @@ -434,6 +434,11 @@ class DNSManager: record = Records.objects.get(pk=data['id']) + if ACLManager.VerifyRecordOwner(currentACL, record, zoneDomain) == 1: + pass + else: + return ACLManager.loadErrorJson() + if data['nameNow'] != None: record.name = data['nameNow'] diff --git a/plogical/acl.py b/plogical/acl.py index 4ef34cd62..be7e1be2e 100644 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -53,6 +53,16 @@ class ACLManager: else: return 0 + @staticmethod + def VerifyRecordOwner(currentACL, record, domain): + if currentACL['admin'] == 1: + return 1 + elif record.domainOwner.name == domain: + return 1 + else: + return 0 + + @staticmethod def AliasDomainCheck(currentACL, aliasDomain, master): aliasOBJ = aliasDomains.objects.get(aliasDomain=aliasDomain)