2017-10-24 19:16:36 +05:00
|
|
|
# -*- coding: utf-8 -*-
|
2024-02-14 08:44:41 +05:00
|
|
|
import time
|
|
|
|
|
from random import randint
|
2019-12-10 15:09:10 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
from django.shortcuts import redirect, HttpResponse
|
2017-10-24 19:16:36 +05:00
|
|
|
from loginSystem.views import loadLoginPage
|
2024-02-14 08:44:41 +05:00
|
|
|
from plogical.acl import ACLManager
|
|
|
|
|
from plogical.httpProc import httpProc
|
|
|
|
|
from plogical.processUtilities import ProcessUtilities
|
2019-12-11 10:40:35 +05:00
|
|
|
from .dnsManager import DNSManager
|
|
|
|
|
from .pluginManager import pluginManager
|
2018-10-08 22:12:05 +05:00
|
|
|
import json
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
# Create your views here.
|
|
|
|
|
|
|
|
|
|
def loadDNSHome(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.loadDNSHome(request, userID)
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def createNameserver(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.createNameserver(request, userID)
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def NSCreation(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.preNSCreation(request)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2018-08-18 00:39:10 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2018-10-08 22:12:05 +05:00
|
|
|
coreResult = dm.NSCreation(userID, json.loads(request.body))
|
2018-08-18 00:39:10 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.postNSCreation(request, coreResult)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2018-07-23 02:09:33 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2018-07-23 02:09:33 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
def createDNSZone(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.createDNSZone(request, userID)
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def zoneCreation(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.preZoneCreation(request)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.zoneCreation(userID, json.loads(request.body))
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.postZoneCreation(request, coreResult)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def addDeleteDNSRecords(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.addDeleteDNSRecords(request, userID)
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-08-24 05:50:28 +05:00
|
|
|
def updateRecord(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.updateRecord(userID, json.loads(request.body))
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def getCurrentRecordsForDomain(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2018-10-08 22:12:05 +05:00
|
|
|
return dm.getCurrentRecordsForDomain(userID, json.loads(request.body))
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
2018-10-05 23:05:02 +05:00
|
|
|
return redirect(loadLoginPage)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def addDNSRecord(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2018-05-29 20:20:05 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.preAddDNSRecord(request)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2018-05-29 20:20:05 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.addDNSRecord(userID, json.loads(request.body))
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.postAddDNSRecord(request, coreResult)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
return coreResult
|
2018-03-01 13:22:01 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def deleteDNSRecord(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.preDeleteDNSRecord(request)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2018-06-30 15:29:56 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.deleteDNSRecord(userID, json.loads(request.body))
|
2018-06-30 15:29:56 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.postDeleteDNSRecord(request, coreResult)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-10-05 23:05:02 +05:00
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def deleteDNSZone(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
dm = DNSManager()
|
2018-10-08 22:12:05 +05:00
|
|
|
return dm.deleteDNSZone(request, userID)
|
2017-10-24 19:16:36 +05:00
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
def submitZoneDeletion(request):
|
|
|
|
|
try:
|
2018-08-18 00:39:10 +05:00
|
|
|
userID = request.session['userID']
|
2018-10-05 23:05:02 +05:00
|
|
|
result = pluginManager.preSubmitZoneDeletion(request)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
2018-10-08 22:12:05 +05:00
|
|
|
coreResult = dm.submitZoneDeletion(userID, json.loads(request.body))
|
2018-10-05 23:05:02 +05:00
|
|
|
|
|
|
|
|
result = pluginManager.postSubmitZoneDeletion(request, coreResult)
|
|
|
|
|
if result != 200:
|
|
|
|
|
return result
|
|
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2018-05-29 20:20:05 +05:00
|
|
|
|
2019-08-21 12:32:16 +05:00
|
|
|
def configureDefaultNameServers(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.configureDefaultNameServers(request, userID)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2018-05-29 20:20:05 +05:00
|
|
|
|
2019-08-22 14:07:46 +05:00
|
|
|
def saveNSConfigurations(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.saveNSConfigurations(userID, json.loads(request.body))
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-02-08 23:09:18 +05:00
|
|
|
def addDeleteDNSRecordsCloudFlare(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.addDeleteDNSRecordsCloudFlare(request, userID)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2019-08-22 14:07:46 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
|
|
|
|
def ResetDNSConfigurations(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
|
|
|
|
|
|
proc = httpProc(request, 'dns/resetdnsconf.html')
|
|
|
|
|
return proc.render()
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def resetDNSnow(request):
|
|
|
|
|
try:
|
|
|
|
|
from plogical.virtualHostUtilities import virtualHostUtilities
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
|
|
|
|
|
|
if currentACL['admin'] == 1:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
return ACLManager.loadErrorJson('FilemanagerAdmin', 0)
|
|
|
|
|
|
|
|
|
|
data = json.loads(request.body)
|
|
|
|
|
tempStatusPath = "/home/cyberpanel/" + str(randint(1000, 9999))
|
|
|
|
|
|
|
|
|
|
execPath = f"/usr/local/CyberCP/bin/python /usr/local/CyberCP/dns/dnsManager.py ResetDNSConfigurations --tempStatusPath {tempStatusPath}"
|
|
|
|
|
|
|
|
|
|
ProcessUtilities.popenExecutioner(execPath)
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
|
|
|
|
|
data_ret = {'status': 1, 'error_message': "None",
|
|
|
|
|
'tempStatusPath': tempStatusPath}
|
|
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getresetstatus(request):
|
|
|
|
|
try:
|
2024-10-23 13:40:57 +04:00
|
|
|
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
|
|
|
|
|
|
|
|
if currentACL['admin'] == 1:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
return ACLManager.loadErrorJson('FilemanagerAdmin', 0)
|
|
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
data = json.loads(request.body)
|
|
|
|
|
statusfile = data['statusfile']
|
|
|
|
|
installStatus = ProcessUtilities.outputExecutioner("sudo cat " + statusfile)
|
|
|
|
|
|
|
|
|
|
if installStatus.find("[200]") > -1:
|
|
|
|
|
|
|
|
|
|
command = 'sudo rm -f ' + statusfile
|
|
|
|
|
ProcessUtilities.executioner(command)
|
|
|
|
|
|
|
|
|
|
final_json = json.dumps({
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'requestStatus': installStatus,
|
|
|
|
|
'abort': 1,
|
|
|
|
|
'installed': 1,
|
|
|
|
|
})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
elif installStatus.find("[404]") > -1:
|
|
|
|
|
command = 'sudo rm -f ' + statusfile
|
|
|
|
|
ProcessUtilities.executioner(command)
|
|
|
|
|
final_json = json.dumps({
|
|
|
|
|
'abort': 1,
|
|
|
|
|
'installed': 0,
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'requestStatus': installStatus,
|
|
|
|
|
})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
final_json = json.dumps({
|
|
|
|
|
'abort': 0,
|
|
|
|
|
'error_message': "None",
|
|
|
|
|
'requestStatus': installStatus,
|
|
|
|
|
})
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
|
|
|
2020-02-08 23:09:18 +05:00
|
|
|
def saveCFConfigs(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
coreResult = dm.saveCFConfigs(userID, json.loads(request.body))
|
|
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2018-05-29 20:20:05 +05:00
|
|
|
|
2017-10-24 19:16:36 +05:00
|
|
|
|
2020-02-09 14:13:29 +05:00
|
|
|
def getCurrentRecordsForDomainCloudFlare(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.getCurrentRecordsForDomainCloudFlare(userID, json.loads(request.body))
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2020-02-10 11:37:03 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-02-10 11:37:03 +05:00
|
|
|
def deleteDNSRecordCloudFlare(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.deleteDNSRecordCloudFlare(userID, json.loads(request.body))
|
2020-02-10 11:37:03 +05:00
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2020-02-10 12:00:16 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-02-10 12:00:16 +05:00
|
|
|
def addDNSRecordCloudFlare(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.addDNSRecordCloudFlare(userID, json.loads(request.body))
|
2020-02-10 12:00:16 +05:00
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2020-02-12 14:44:38 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-02-12 14:44:38 +05:00
|
|
|
def syncCF(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.syncCF(userID, json.loads(request.body))
|
2020-02-12 14:44:38 +05:00
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|
2020-02-27 17:31:49 +05:00
|
|
|
|
2024-02-14 08:44:41 +05:00
|
|
|
|
2020-02-27 17:31:49 +05:00
|
|
|
def enableProxy(request):
|
|
|
|
|
try:
|
|
|
|
|
userID = request.session['userID']
|
|
|
|
|
|
|
|
|
|
dm = DNSManager()
|
2024-02-14 08:44:41 +05:00
|
|
|
coreResult = dm.enableProxy(userID, json.loads(request.body))
|
2020-02-27 17:31:49 +05:00
|
|
|
|
|
|
|
|
return coreResult
|
|
|
|
|
except KeyError:
|
|
|
|
|
return redirect(loadLoginPage)
|