mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-08 06:16:08 +01:00
enable/disable CF proxy
This commit is contained in:
@@ -1016,3 +1016,86 @@ class DNSManager:
|
|||||||
final_dic = {'status': 0, 'error_message': str(msg)}
|
final_dic = {'status': 0, 'error_message': str(msg)}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
|
|
||||||
|
def enableProxy(self, userID = None, data = None):
|
||||||
|
try:
|
||||||
|
currentACL = ACLManager.loadedACL(userID)
|
||||||
|
|
||||||
|
if ACLManager.currentContextPermission(currentACL, 'addDeleteRecords') == 0:
|
||||||
|
return ACLManager.loadErrorJson('fetchStatus', 0)
|
||||||
|
|
||||||
|
zoneDomain = data['selectedZone']
|
||||||
|
name = data['name']
|
||||||
|
value = data['value']
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
## Get zone
|
||||||
|
|
||||||
|
zones = cf.zones.get(params=params)
|
||||||
|
|
||||||
|
zone = zones[0]
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
zone_id = zone['id']
|
||||||
|
|
||||||
|
params = {'name': name}
|
||||||
|
dns_records = cf.zones.dns_records.get(zone_id, params=params)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
if value == True:
|
||||||
|
new_r_proxied_flag = False
|
||||||
|
else:
|
||||||
|
new_r_proxied_flag = True
|
||||||
|
|
||||||
|
for dns_record in dns_records:
|
||||||
|
r_zone_id = dns_record['zone_id']
|
||||||
|
r_id = dns_record['id']
|
||||||
|
r_name = dns_record['name']
|
||||||
|
r_type = dns_record['type']
|
||||||
|
r_content = dns_record['content']
|
||||||
|
r_ttl = dns_record['ttl']
|
||||||
|
r_proxied = dns_record['proxied']
|
||||||
|
r_proxiable = dns_record['proxiable']
|
||||||
|
|
||||||
|
if r_proxied == new_r_proxied_flag:
|
||||||
|
# Nothing to do
|
||||||
|
continue
|
||||||
|
|
||||||
|
dns_record_id = dns_record['id']
|
||||||
|
|
||||||
|
new_dns_record = {
|
||||||
|
'zone_id': r_zone_id,
|
||||||
|
'id': r_id,
|
||||||
|
'type': r_type,
|
||||||
|
'name': r_name,
|
||||||
|
'content': r_content,
|
||||||
|
'ttl': r_ttl,
|
||||||
|
'proxied': new_r_proxied_flag
|
||||||
|
}
|
||||||
|
|
||||||
|
cf.zones.dns_records.put(zone_id, dns_record_id, data=new_dns_record)
|
||||||
|
|
||||||
|
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)
|
||||||
@@ -1131,19 +1131,17 @@ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http, $window
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.enableProxy = function (id, value) {
|
$scope.enableProxy = function (name, value) {
|
||||||
|
$scope.recordsLoading = false;
|
||||||
alert(value);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
|
|
||||||
var selectedZone = $scope.selectedZone;
|
var selectedZone = $scope.selectedZone;
|
||||||
|
|
||||||
url = "/dns/deleteDNSRecordCloudFlare";
|
url = "/dns/enableProxy";
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
selectedZone: selectedZone,
|
selectedZone: selectedZone,
|
||||||
id: id
|
name: name,
|
||||||
|
value: value
|
||||||
};
|
};
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
@@ -1157,9 +1155,9 @@ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http, $window
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
populateCurrentRecords();
|
||||||
|
|
||||||
|
if (response.data.status === 1) {
|
||||||
if (response.data.delete_status == 1) {
|
|
||||||
|
|
||||||
|
|
||||||
$scope.addRecordsBox = false;
|
$scope.addRecordsBox = false;
|
||||||
|
|||||||
@@ -508,7 +508,7 @@
|
|||||||
<td ng-bind="record.content"></td>
|
<td ng-bind="record.content"></td>
|
||||||
<td ng-bind="record.priority"></td>
|
<td ng-bind="record.priority"></td>
|
||||||
<td>
|
<td>
|
||||||
<input ng-click="enableProxy(record.id, this)" ng-disabled="!record.proxiable" ng-checked="record.proxy" type="checkbox" data-toggle="toggle">
|
<input ng-click="enableProxy(record.name, record.proxy)" ng-disabled="!record.proxiable" ng-checked="record.proxy" type="checkbox" ng-true-value="true" ng-false-value="false" data-toggle="toggle">
|
||||||
</td>
|
</td>
|
||||||
<td ng-click="deleteRecord(record.id)"><img
|
<td ng-click="deleteRecord(record.id)"><img
|
||||||
src="{% static 'images/delete.png' %}"></td>
|
src="{% static 'images/delete.png' %}"></td>
|
||||||
|
|||||||
@@ -23,5 +23,6 @@ urlpatterns = [
|
|||||||
url(r'^getCurrentRecordsForDomainCloudFlare$', views.getCurrentRecordsForDomainCloudFlare, name='getCurrentRecordsForDomainCloudFlare'),
|
url(r'^getCurrentRecordsForDomainCloudFlare$', views.getCurrentRecordsForDomainCloudFlare, name='getCurrentRecordsForDomainCloudFlare'),
|
||||||
url(r'^deleteDNSRecordCloudFlare$', views.deleteDNSRecordCloudFlare, name='deleteDNSRecordCloudFlare'),
|
url(r'^deleteDNSRecordCloudFlare$', views.deleteDNSRecordCloudFlare, name='deleteDNSRecordCloudFlare'),
|
||||||
url(r'^addDNSRecordCloudFlare$', views.addDNSRecordCloudFlare,name='addDNSRecordCloudFlare'),
|
url(r'^addDNSRecordCloudFlare$', views.addDNSRecordCloudFlare,name='addDNSRecordCloudFlare'),
|
||||||
url(r'^syncCF$', views.syncCF, name='syncCF')
|
url(r'^syncCF$', views.syncCF, name='syncCF'),
|
||||||
|
url(r'^enableProxy$', views.enableProxy, name='enableProxy')
|
||||||
]
|
]
|
||||||
11
dns/views.py
11
dns/views.py
@@ -232,3 +232,14 @@ def syncCF(request):
|
|||||||
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return redirect(loadLoginPage)
|
return redirect(loadLoginPage)
|
||||||
|
|
||||||
|
def enableProxy(request):
|
||||||
|
try:
|
||||||
|
userID = request.session['userID']
|
||||||
|
|
||||||
|
dm = DNSManager()
|
||||||
|
coreResult = dm.enableProxy(userID, json.loads(request.body))
|
||||||
|
|
||||||
|
return coreResult
|
||||||
|
except KeyError:
|
||||||
|
return redirect(loadLoginPage)
|
||||||
|
|||||||
Reference in New Issue
Block a user