delete record from cf

This commit is contained in:
Usman Nasir
2020-02-10 11:37:03 +05:00
parent 81c7f42951
commit d302ab4897
4 changed files with 60 additions and 3 deletions

View File

@@ -736,4 +736,47 @@ class DNSManager:
except BaseException as msg:
final_dic = {'status': 0, 'fetchStatus': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
def deleteDNSRecordCloudFlare(self, userID = None, data = None):
try:
currentACL = ACLManager.loadedACL(userID)
if ACLManager.currentContextPermission(currentACL, 'addDeleteRecords') == 0:
return ACLManager.loadErrorJson('fetchStatus', 0)
zoneDomain = data['selectedZone']
id = data['id']
admin = Administrator.objects.get(pk=userID)
self.admin = admin
if ACLManager.checkOwnershipZone(zoneDomain, admin, currentACL) == 1:
pass
else:
return ACLManager.loadErrorJson()
self.loadCFKeys()
params = {'name': zoneDomain, 'per_page': 50}
cf = CloudFlare.CloudFlare(email=self.email, token=self.key)
try:
zones = cf.zones.get(params=params)
except CloudFlare.CloudFlareAPIError as e:
final_json = json.dumps({'status': 0, 'delete_status': 0, 'error_message': str(e), "data": '[]'})
return HttpResponse(final_json)
for zone in sorted(zones, key=lambda v: v['name']):
zone_id = zone['id']
dns_record = cf.zones.dns_records.delete(zone_id, int(id))
final_dic = {'status': 1, 'delete_status': 1, 'error_message': "None"}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
except BaseException as msg:
final_dic = {'status': 0, 'delete_status': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)

View File

@@ -971,10 +971,11 @@ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http) {
var selectedZone = $scope.selectedZone;
url = "/dns/deleteDNSRecord";
url = "/dns/deleteDNSRecordCloudFlare";
var data = {
id: id,
selectedZone: selectedZone,
id: id
};
var config = {

View File

@@ -14,11 +14,13 @@ urlpatterns = [
url(r'^zoneCreation', views.zoneCreation, name='zoneCreation'),
url(r'^getCurrentRecordsForDomain$',views.getCurrentRecordsForDomain,name='getCurrentRecordsForDomain'),
url(r'^addDNSRecord',views.addDNSRecord,name='addDNSRecord'),
url(r'^deleteDNSRecord',views.deleteDNSRecord,name='deleteDNSRecord'),
url(r'^deleteDNSRecord$',views.deleteDNSRecord,name='deleteDNSRecord'),
url(r'^deleteDNSZone',views.deleteDNSZone,name='deleteDNSZone'),
url(r'^submitZoneDeletion',views.submitZoneDeletion,name='submitZoneDeletion'),
url(r'^saveNSConfigurations$', views.saveNSConfigurations, name='saveNSConfigurations'),
url(r'^saveCFConfigs$', views.saveCFConfigs, name='saveCFConfigs'),
url(r'^getCurrentRecordsForDomainCloudFlare$', views.getCurrentRecordsForDomainCloudFlare, name='getCurrentRecordsForDomainCloudFlare'),
url(r'^deleteDNSRecordCloudFlare$', views.deleteDNSRecordCloudFlare,
name='deleteDNSRecordCloudFlare'),
]

View File

@@ -197,3 +197,14 @@ def getCurrentRecordsForDomainCloudFlare(request):
return dm.getCurrentRecordsForDomainCloudFlare(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
def deleteDNSRecordCloudFlare(request):
try:
userID = request.session['userID']
dm = DNSManager()
coreResult = dm.deleteDNSRecordCloudFlare(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)