Skip to content

Commit 2abb1f8

Browse files
committed
add/delete firewall rule via api
1 parent f8efe73 commit 2abb1f8

2 files changed

Lines changed: 68 additions & 1 deletion

File tree

api/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
url(r'^createWebsite', views.createWebsite, name='createWebsiteAPI'),
66
url(r'^deleteWebsite', views.deleteWebsite, name='deleteWebsiteAPI'),
77
url(r'^submitWebsiteStatus', views.submitWebsiteStatus, name='submitWebsiteStatusAPI'),
8+
url(r'^deleteFirewallRule$', views.deleteFirewallRule, name='deleteFirewallRule'),
9+
url(r'^addFirewallRule$', views.addFirewallRule, name='addFirewallRule'),
810

911
url(r'^verifyConn', views.verifyConn, name='verifyConnAPI'),
1012

api/views.py

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ def getPackagesListAPI(request):
8585
data_ret = {"status": 0,'error_message': "Could not authorize access to API"}
8686
json_data = json.dumps(data_ret)
8787
return HttpResponse(json_data)
88-
8988

9089
@csrf_exempt
9190
def getUserInfo(request):
@@ -672,3 +671,69 @@ def submitUserCreation(request):
672671
data_ret = {'changeStatus': 0, 'error_message': str(msg)}
673672
json_data = json.dumps(data_ret)
674673
return HttpResponse(json_data)
674+
675+
@csrf_exempt
676+
def addFirewallRule(request):
677+
try:
678+
if request.method == 'POST':
679+
680+
data = json.loads(request.body)
681+
682+
adminUser = data['adminUser']
683+
adminPass = data['adminPass']
684+
685+
admin = Administrator.objects.get(userName=adminUser)
686+
687+
if admin.api == 0:
688+
data_ret = {"status": 0, 'error_message': "API Access Disabled."}
689+
json_data = json.dumps(data_ret)
690+
return HttpResponse(json_data)
691+
692+
if hashPassword.check_password(admin.password, adminPass):
693+
from firewall.firewallManager import FirewallManager
694+
695+
fm = FirewallManager()
696+
return fm.addRule(admin.pk, json.loads(request.body))
697+
else:
698+
data_ret = {"status": 0,
699+
'error_message': "Could not authorize access to API"}
700+
json_data = json.dumps(data_ret)
701+
return HttpResponse(json_data)
702+
703+
except BaseException as msg:
704+
data_ret = {'submitUserDeletion': 0, 'error_message': str(msg)}
705+
json_data = json.dumps(data_ret)
706+
return HttpResponse(json_data)
707+
708+
@csrf_exempt
709+
def deleteFirewallRule(request):
710+
try:
711+
if request.method == 'POST':
712+
713+
data = json.loads(request.body)
714+
715+
adminUser = data['adminUser']
716+
adminPass = data['adminPass']
717+
718+
admin = Administrator.objects.get(userName=adminUser)
719+
720+
if admin.api == 0:
721+
data_ret = {"status": 0, 'error_message': "API Access Disabled."}
722+
json_data = json.dumps(data_ret)
723+
return HttpResponse(json_data)
724+
725+
if hashPassword.check_password(admin.password, adminPass):
726+
from firewall.firewallManager import FirewallManager
727+
728+
fm = FirewallManager()
729+
return fm.deleteRule(admin.pk, json.loads(request.body))
730+
else:
731+
data_ret = {"status": 0,
732+
'error_message': "Could not authorize access to API"}
733+
json_data = json.dumps(data_ret)
734+
return HttpResponse(json_data)
735+
736+
except BaseException as msg:
737+
data_ret = {'submitUserDeletion': 0, 'error_message': str(msg)}
738+
json_data = json.dumps(data_ret)
739+
return HttpResponse(json_data)

0 commit comments

Comments
 (0)