mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-10-31 18:36:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			365 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			365 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| import time
 | |
| from random import randint
 | |
| 
 | |
| from django.shortcuts import redirect, HttpResponse
 | |
| from loginSystem.views import loadLoginPage
 | |
| from plogical.acl import ACLManager
 | |
| from plogical.httpProc import httpProc
 | |
| from plogical.processUtilities import ProcessUtilities
 | |
| from .dnsManager import DNSManager
 | |
| from .pluginManager import pluginManager
 | |
| import json
 | |
| 
 | |
| 
 | |
| # Create your views here.
 | |
| 
 | |
| def loadDNSHome(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.loadDNSHome(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def createNameserver(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.createNameserver(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def NSCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preNSCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.NSCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postNSCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def createDNSZone(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.createDNSZone(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def zoneCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preZoneCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.zoneCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postZoneCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def addDeleteDNSRecords(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.addDeleteDNSRecords(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def updateRecord(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.updateRecord(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def getCurrentRecordsForDomain(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.getCurrentRecordsForDomain(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def addDNSRecord(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preAddDNSRecord(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.addDNSRecord(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postAddDNSRecord(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def deleteDNSRecord(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preDeleteDNSRecord(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.deleteDNSRecord(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postDeleteDNSRecord(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def deleteDNSZone(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.deleteDNSZone(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def submitZoneDeletion(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         result = pluginManager.preSubmitZoneDeletion(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.submitZoneDeletion(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postSubmitZoneDeletion(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def configureDefaultNameServers(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.configureDefaultNameServers(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def saveNSConfigurations(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.saveNSConfigurations(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def addDeleteDNSRecordsCloudFlare(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         return dm.addDeleteDNSRecordsCloudFlare(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| 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:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         currentACL = ACLManager.loadedACL(userID)
 | |
| 
 | |
|         if currentACL['admin'] == 1:
 | |
|             pass
 | |
|         else:
 | |
|             return ACLManager.loadErrorJson('FilemanagerAdmin', 0)
 | |
| 
 | |
|         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)
 | |
| 
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 
 | |
| def getCurrentRecordsForDomainCloudFlare(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         dm = DNSManager()
 | |
|         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)
 | |
| 
 | |
| 
 | |
| def addDNSRecordCloudFlare(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.addDNSRecordCloudFlare(userID, json.loads(request.body))
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def syncCF(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         dm = DNSManager()
 | |
|         coreResult = dm.syncCF(userID, json.loads(request.body))
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         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)
 |