mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-10-31 18:36:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			2067 lines
		
	
	
		
			57 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			2067 lines
		
	
	
		
			57 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| 
 | |
| from django.shortcuts import redirect
 | |
| from django.http import HttpResponse, JsonResponse
 | |
| from loginSystem.models import Administrator
 | |
| from loginSystem.views import loadLoginPage
 | |
| import json
 | |
| import plogical.CyberCPLogFileWriter as logging
 | |
| from plogical.acl import ACLManager
 | |
| 
 | |
| 
 | |
| from plogical.httpProc import httpProc
 | |
| from websiteFunctions.models import wpplugins
 | |
| from websiteFunctions.website import WebsiteManager
 | |
| from websiteFunctions.pluginManager import pluginManager
 | |
| from django.views.decorators.csrf import csrf_exempt
 | |
| from .dockerviews import startContainer as docker_startContainer
 | |
| from .dockerviews import stopContainer as docker_stopContainer
 | |
| from .dockerviews import restartContainer as docker_restartContainer
 | |
| from .resource_monitoring import get_website_resource_usage
 | |
| import jwt
 | |
| from datetime import datetime, timedelta
 | |
| import OpenSSL
 | |
| from plogical.processUtilities import ProcessUtilities
 | |
| import os
 | |
| import re
 | |
| 
 | |
| def loadWebsitesHome(request):
 | |
|     val = request.session['userID']
 | |
|     admin = Administrator.objects.get(pk=val)
 | |
|     proc = httpProc(request, 'websiteFunctions/index.html',
 | |
|                     {"type": admin.type})
 | |
|     return proc.render()
 | |
| 
 | |
| def createWebsite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.createWebsite(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def WPCreate(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.WPCreate(request, userID,)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def ListWPSites(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.ListWPSites(request, userID, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def WPHome(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         WPid = request.GET.get('ID')
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.WPHome(request, userID, WPid, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def RestoreHome(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         BackupID = request.GET.get('BackupID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.RestoreHome(request, userID, BackupID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def RemoteBackupConfig(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.RemoteBackupConfig(request, userID, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def BackupfileConfig(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         ID = request.GET.get('ID')
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.BackupfileConfig(request, userID, ID, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def AddRemoteBackupsite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         ID = request.GET.get('ID')
 | |
|         DeleteSiteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.AddRemoteBackupsite(request, userID, ID,DeleteSiteID )
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def WordpressPricing(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.WordpressPricing(request, userID,)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def RestoreBackups(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.RestoreBackups(request, userID, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def AutoLogin(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.AutoLogin(request, userID)
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def ConfigurePlugins(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         userobj = Administrator.objects.get(pk=userID)
 | |
|         DeleteFileID = request.GET.get('delete', None)
 | |
|         if DeleteFileID != None:
 | |
|             try:
 | |
|                 jobobj = wpplugins.objects.get(pk=DeleteFileID, owner=userobj)
 | |
|                 jobobj.delete()
 | |
|                 Deleted = 1
 | |
|             except BaseException as msg:
 | |
|                 logging.CyberCPLogFileWriter.writeToFile("DeleteFileID ....... %s....msg.....%s" % (DeleteFileID,msg))
 | |
|                 Deleted = 0
 | |
|         wm = WebsiteManager()
 | |
|         return wm.ConfigurePlugins(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def Addnewplugin(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.Addnewplugin(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| def SearchOnkeyupPlugin(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.SearchOnkeyupPlugin(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def AddNewpluginAjax(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.AddNewpluginAjax(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def EidtPlugin(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         pluginbID = request.GET.get('ID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.EidtPlugin(request, userID, pluginbID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def deletesPlgin(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.deletesPlgin(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def Addplugineidt(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.Addplugineidt(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def submitWorpressCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitWorpressCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def FetchWPdata(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.FetchWPdata(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def GetCurrentPlugins(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.GetCurrentPlugins(userID, json.loads(request.body))
 | |
|         # coreResult = wm.GetCsurrentPlugins(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def fetchstaging(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.fetchstaging(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchDatabase(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.fetchDatabase(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def SaveUpdateConfig(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.SaveUpdateConfig(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def DeploytoProduction(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         #result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         #if result != 200:
 | |
|         #    return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         return wm.DeploytoProduction(userID, json.loads(request.body))
 | |
| 
 | |
|         #result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         #if result != 200:
 | |
|         #    return result
 | |
| 
 | |
|         #return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def WPCreateBackup(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.WPCreateBackup(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| 
 | |
| def RestoreWPbackupNow(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.RestoreWPbackupNow(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def SaveBackupConfig(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.SaveBackupConfig(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def SaveBackupSchedule(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.SaveBackupSchedule(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def AddWPsiteforRemoteBackup(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.AddWPsiteforRemoteBackup(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def UpdateRemoteschedules(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.UpdateRemoteschedules(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def ScanWordpressSite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.ScanWordpressSite(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def installwpcore(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.installwpcore(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def dataintegrity(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.dataintegrity(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| 
 | |
| def GetCurrentThemes(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.GetCurrentThemes(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def UpdateWPSettings(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         
 | |
|         wm = WebsiteManager()
 | |
|         return wm.UpdateWPSettings(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def UpdatePlugins(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.UpdatePlugins(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def UpdateThemes(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.UpdateThemes(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def DeletePlugins(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.DeletePlugins(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def DeleteThemes(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.DeleteThemes(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def ChangeStatus(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.ChangeStatus(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def StatusThemes(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.ChangeStatusThemes(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def CreateStagingNow(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.CreateStagingNow(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| 
 | |
| def modifyWebsite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.modifyWebsite(request, userID)
 | |
|     except BaseException as msg:
 | |
|         return HttpResponse(str(msg))
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def deleteWebsite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.deleteWebsite(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def CreateNewDomain(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.CreateNewDomain(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def siteState(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.siteState(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def listWebsites(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.listWebsites(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def listChildDomains(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.listChildDomains(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitWebsiteCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
| 
 | |
|         if  result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitWebsiteCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitDomainCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preDomainCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitDomainCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postDomainCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchDomains(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchDomains(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def searchWebsites(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.searchWebsites(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def searchChilds(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.searchChilds(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getFurtherAccounts(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getFurtherAccounts(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchWebsitesList(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchWebsitesList(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchChildDomainsMain(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchChildDomainsMain(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitWebsiteDeletion(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteDeletion(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitWebsiteDeletion(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteDeletion(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitDomainDeletion(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preDomainDeletion(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitDomainDeletion(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postDomainDeletion(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def convertDomainToSite(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.convertDomainToSite(userID, request)
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitWebsiteStatus(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteSuspension(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitWebsiteStatus(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteSuspension(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitWebsiteModify(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.submitWebsiteModify(userID, json.loads(request.body))
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveWebsiteChanges(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteModification(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.saveWebsiteChanges(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteModification(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def domain(request, domain):
 | |
|     try:
 | |
| 
 | |
|         if not request.GET._mutable:
 | |
|             request.GET._mutable = True
 | |
|         request.GET['domain'] = domain
 | |
| 
 | |
|         result = pluginManager.preDomain(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         coreResult = wm.loadDomainHome(request, userID)
 | |
| 
 | |
|         result = pluginManager.postDomain(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def launchChild(request, domain, childDomain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain, childDomain)
 | |
|         return wm.launchChild(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getDataFromLogFile(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getDataFromLogFile(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchErrorLogs(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchErrorLogs(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getDataFromConfigFile(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getDataFromConfigFile(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveConfigsToFile(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preSaveConfigsToFile(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.saveConfigsToFile(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postSaveConfigsToFile(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getRewriteRules(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getRewriteRules(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveRewriteRules(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preSaveRewriteRules(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.saveRewriteRules(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postSaveRewriteRules(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveSSL(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preSaveSSL(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.saveSSL(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postSaveSSL(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def changePHP(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preChangePHP(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.changePHP(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postChangePHP(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def listCron(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.listCron(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getWebsiteCron(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getWebsiteCron(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getCronbyLine(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getCronbyLine(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveCronChanges(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.saveCronChanges(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def remCronbyLine(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preRemCronbyLine(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.remCronbyLine(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postRemCronbyLine(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def addNewCron(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preAddNewCron(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.addNewCron(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postAddNewCron(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def domainAlias(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.domainAlias(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitAliasCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preSubmitAliasCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.submitAliasCreation(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postSubmitAliasCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def issueAliasSSL(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.issueAliasSSL(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def delateAlias(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preDelateAlias(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.delateAlias(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postDelateAlias(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def changeOpenBasedir(request):
 | |
|     try:
 | |
| 
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preChangeOpenBasedir(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.changeOpenBasedir(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postChangeOpenBasedir(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def wordpressInstall(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.wordpressInstall(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installWordpress(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.installWordpress(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installWordpressStatus(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.installWordpressStatus(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def joomlaInstall(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.joomlaInstall(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installJoomla(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.installJoomla(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def setupGit(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.setupGit(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def setupGitRepo(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.setupGitRepo(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def gitNotify(request, domain):
 | |
|     try:
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.gitNotify()
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def detachRepo(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.detachRepo(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def changeBranch(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.changeBranch(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installPrestaShop(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.installPrestaShop(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installMagento(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.installMagento(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def magentoInstall(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.magentoInstall(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def installMautic(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.installMautic(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def mauticInstall(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.mauticInstall(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def prestaShopInstall(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.prestaShopInstall(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def sshAccess(request, domain):
 | |
|     try:
 | |
|         # from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter
 | |
|         # # Ensure FastAPI SSH server systemd service file is in place
 | |
|         # try:
 | |
|         #     service_path = '/etc/systemd/system/fastapi_ssh_server.service'
 | |
|         #     local_service_path = 'fastapi_ssh_server.service'
 | |
|         #     check_service = ProcessUtilities.outputExecutioner(f'test -f {service_path} && echo exists || echo missing')
 | |
|         #     if 'missing' in check_service:
 | |
|         #         ProcessUtilities.outputExecutioner(f'cp /usr/local/CyberCP/fastapi_ssh_server.service {service_path}')
 | |
|         #         ProcessUtilities.outputExecutioner('systemctl daemon-reload')
 | |
|         # except Exception as e:
 | |
|         #     CyberCPLogFileWriter.writeLog(f"Failed to copy or reload fastapi_ssh_server.service: {e}")
 | |
| 
 | |
|         # # Ensure FastAPI SSH server is running using ProcessUtilities
 | |
|         # try:
 | |
|         #     ProcessUtilities.outputExecutioner('systemctl is-active --quiet fastapi_ssh_server')
 | |
|         #     ProcessUtilities.outputExecutioner('systemctl enable --now fastapi_ssh_server')
 | |
|         #     ProcessUtilities.outputExecutioner('systemctl start fastapi_ssh_server')
 | |
|         # except Exception as e:
 | |
|         #     CyberCPLogFileWriter.writeLog(f"Failed to ensure fastapi_ssh_server is running: {e}")
 | |
| 
 | |
|         # # Add-on check logic
 | |
|         # url = "https://platform.cyberpersons.com/CyberpanelAdOns/Adonpermission"
 | |
|         # data = {
 | |
|         #     "name": "all",
 | |
|         #     "IP": ACLManager.GetServerIP()
 | |
|         # }
 | |
|         # import requests
 | |
|         # import json
 | |
|         # try:
 | |
|         #     response = requests.post(url, data=json.dumps(data))
 | |
|         #     Status = response.json().get('status', 0)
 | |
|         # except Exception:
 | |
|         #     Status = 0
 | |
|         # has_addons = (Status == 1) or ProcessUtilities.decideServer() == ProcessUtilities.ent
 | |
| 
 | |
|         # from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter
 | |
| 
 | |
|         # CyberCPLogFileWriter.writeToFile(f"has_addons: {has_addons}")
 | |
| 
 | |
|         # userID = request.session['userID']
 | |
|         # wm = WebsiteManager(domain)
 | |
|         # # SSL check
 | |
|         # cert_path = '/usr/local/lscp/conf/cert.pem'
 | |
|         # is_selfsigned = False
 | |
|         # ssl_issue_link = '/manageSSL/sslForHostName'
 | |
|         # try:
 | |
|         #     cert_content = ProcessUtilities.outputExecutioner(f'cat {cert_path}')
 | |
|         #     cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert_content)
 | |
|         #     is_selfsigned = cert.get_issuer().der() == cert.get_subject().der()
 | |
|         # except Exception:
 | |
|         #     is_selfsigned = True  # If cert missing or unreadable, treat as self-signed
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.sshAccess(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveSSHAccessChanges(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.saveSSHAccessChanges(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def setupStaging(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.setupStaging(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def startCloning(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.startCloning(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def syncToMaster(request, domain, childDomain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.syncToMaster(request, userID, None, childDomain)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def startSync(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.startSync(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| ### Manage GIT
 | |
| 
 | |
| def manageGIT(request, domain):
 | |
|     try:
 | |
| 
 | |
|         if not request.GET._mutable:
 | |
|             request.GET._mutable = True
 | |
| 
 | |
|         request.GET['domain'] = domain
 | |
| 
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.manageGIT(request, userID)
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchFolderDetails(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchFolderDetails(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def initRepo(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.initRepo(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def setupRemote(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.setupRemote(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def changeGitBranch(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.changeGitBranch(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def createNewBranch(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.createNewBranch(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def commitChanges(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.commitChanges(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def gitPull(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.gitPull(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def gitPush(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.gitPush(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def attachRepoGIT(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.attachRepoGIT(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def removeTracking(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.removeTracking(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchGitignore(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchGitignore(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveGitIgnore(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.saveGitIgnore(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchCommits(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchCommits(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchFiles(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchFiles(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchChangesInFile(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchChangesInFile(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveGitConfigurations(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.saveGitConfigurations(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchGitLogs(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchGitLogs(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def getSSHConfigs(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getSSHConfigs(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def deleteSSHKey(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.deleteSSHKey(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def addSSHKey(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.addSSHKey(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def webhook(request, domain):
 | |
|     try:
 | |
|         wm = WebsiteManager()
 | |
|         return wm.webhook(domain, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def ApacheManager(request, domain):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(domain)
 | |
|         return wm.ApacheManager(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def getSwitchStatus(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.getSwitchStatus(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def switchServer(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.switchServer(userID, json.loads(request.body))
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def statusFunc(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         from cloudAPI.cloudManager import CloudManager
 | |
|         admin = Administrator.objects.get(pk=userID)
 | |
|         cm = CloudManager(data, admin)
 | |
|         return cm.statusFunc()
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def tuneSettings(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.tuneSettings(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def saveApacheConfigsToFile(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.saveApacheConfigsToFile(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| 
 | |
| def CreateDockerPackage(request):
 | |
|     try:
 | |
|         val = request.session['userID']
 | |
|         admin = Administrator.objects.get(pk=val)
 | |
|         proc = httpProc(request, 'websiteFunctions/CreateDockerPackage.html',
 | |
|                         {"type": admin.type})
 | |
|         return proc.render()
 | |
|     except BaseException as msg:
 | |
|         return HttpResponse(msg)
 | |
| 
 | |
| def CreateDockerPackage(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.CreateDockerPackage(request, userID, None, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def AssignPackage(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.AssignPackage(request, userID, None, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def CreateDockersite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager()
 | |
|         return wm.CreateDockersite(request, userID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def AddDockerpackage(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.AddDockerpackage(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def Getpackage(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.Getpackage(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def Updatepackage(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.Updatepackage(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| def AddAssignment(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.AddAssignment(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def submitDockerSiteCreation(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.submitDockerSiteCreation(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def ListDockerSites(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         DeleteID = request.GET.get('DeleteID')
 | |
|         wm = WebsiteManager()
 | |
|         return wm.ListDockerSites(request, userID, None, DeleteID)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchDockersite(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = json.loads(request.body)
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchDockersite(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def Dockersitehome(request, dockerapp):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         wm = WebsiteManager(dockerapp)
 | |
|         return wm.Dockersitehome(request, userID, None)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| def fetchWPDetails(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
|         data = {
 | |
|             'domain': request.POST.get('domain')
 | |
|         }
 | |
|         wm = WebsiteManager()
 | |
|         return wm.fetchWPSitesForDomain(userID, data)
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def startContainer(request):
 | |
|     try:
 | |
|         if request.method == 'POST':
 | |
|             return docker_startContainer(request)
 | |
|         return HttpResponse('Not allowed')
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def stopContainer(request):
 | |
|     try:
 | |
|         if request.method == 'POST':
 | |
|             return docker_stopContainer(request)
 | |
|         return HttpResponse('Not allowed')
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def restartContainer(request):
 | |
|     try:
 | |
|         if request.method == 'POST':
 | |
|             return docker_restartContainer(request)
 | |
|         return HttpResponse('Not allowed')
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage)
 | |
| 
 | |
| @csrf_exempt
 | |
| def get_website_resources(request):
 | |
|     try:
 | |
|         data = json.loads(request.body)
 | |
|         domain = data['domain']
 | |
| 
 | |
|         # Get userID from session
 | |
|         try:
 | |
|             userID = request.session['userID']
 | |
|             admin = Administrator.objects.get(pk=userID)
 | |
|         except:
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Unauthorized access'})
 | |
| 
 | |
|         # Verify domain ownership
 | |
|         currentACL = ACLManager.loadedACL(userID)
 | |
|         
 | |
|         from websiteFunctions.models import Websites
 | |
|         try:
 | |
|             website = Websites.objects.get(domain=domain)
 | |
|         except Websites.DoesNotExist:
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Website not found'})
 | |
| 
 | |
|         if ACLManager.checkOwnership(domain, admin, currentACL) == 1:
 | |
|             pass
 | |
|         else:
 | |
|             return ACLManager.loadError()
 | |
| 
 | |
|         # Get resource usage data using externalApp
 | |
|         resource_data = get_website_resource_usage(website.externalApp)
 | |
|         if resource_data['status'] == 0:
 | |
|             return JsonResponse(resource_data)
 | |
| 
 | |
|         return JsonResponse(resource_data)
 | |
| 
 | |
|     except BaseException as msg:
 | |
|         logging.CyberCPLogFileWriter.writeToFile(f'Error in get_website_resources: {str(msg)}')
 | |
|         return JsonResponse({'status': 0, 'error_message': str(msg)})
 | |
| 
 | |
| @csrf_exempt
 | |
| def get_terminal_jwt(request):
 | |
|     import logging
 | |
|     logger = logging.getLogger("cyberpanel.ssh.jwt")
 | |
|     try:
 | |
|         logger.error("get_terminal_jwt called")
 | |
|         logger.error(f"Request body: {request.body}")
 | |
|         data = json.loads(request.body)
 | |
|         domain = data.get('domain')
 | |
|         logger.error(f"Domain: {domain}")
 | |
|         if not domain:
 | |
|             logger.error("No domain provided")
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Domain required'})
 | |
|         user_id = request.session.get('userID')
 | |
|         logger.error(f"User ID from session: {user_id}")
 | |
|         if not user_id:
 | |
|             logger.error("User not authenticated")
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Not authenticated'})
 | |
|         from websiteFunctions.models import Websites
 | |
|         from plogical.acl import ACLManager
 | |
|         from loginSystem.models import Administrator
 | |
|         admin = Administrator.objects.get(pk=user_id)
 | |
|         currentACL = ACLManager.loadedACL(user_id)
 | |
|         if ACLManager.checkOwnership(domain, admin, currentACL) != 1:
 | |
|             logger.error("User not authorized for domain")
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Not authorized'})
 | |
|         try:
 | |
|             website = Websites.objects.get(domain=domain)
 | |
|         except Websites.DoesNotExist:
 | |
|             logger.error("Website not found")
 | |
|             return JsonResponse({'status': 0, 'error_message': 'Website not found'})
 | |
|         ssh_user = website.externalApp
 | |
|         logger.error(f"SSH user: {ssh_user}")
 | |
|         if not ssh_user:
 | |
|             logger.error("SSH user is empty or not set for this website.")
 | |
|             return JsonResponse({'status': 0, 'error_message': 'SSH user not configured for this website.'})
 | |
|         from datetime import datetime, timedelta
 | |
|         import jwt as pyjwt
 | |
|         # Read JWT_SECRET from fastapi_ssh_server.py using ProcessUtilities
 | |
|         jwt_secret = None
 | |
|         try:
 | |
|             content = ProcessUtilities.outputExecutioner('cat /usr/local/CyberCP/fastapi_ssh_server.py')
 | |
|             for line in content.splitlines():
 | |
|                 m = re.match(r'\s*JWT_SECRET\s*=\s*[\'"](.+)[\'"]', line)
 | |
|                 if m and m.group(1) != 'REPLACE_ME_WITH_INSTALLER':
 | |
|                     jwt_secret = m.group(1)
 | |
|                     if os.path.exists(ProcessUtilities.debugPath):
 | |
|                         from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter
 | |
|                         CyberCPLogFileWriter.writeLog(f"JWT_SECRET: {jwt_secret}")
 | |
|                     break
 | |
|         except Exception as e:
 | |
|             logger.error(f"Could not read JWT_SECRET: {e}")
 | |
|         if not jwt_secret:
 | |
|             jwt_secret = 'YOUR_SECRET_KEY'  # fallback, should not be used in production
 | |
|         payload = {
 | |
|             'user_id': user_id,
 | |
|             'ssh_user': ssh_user,
 | |
|             'exp': datetime.utcnow() + timedelta(minutes=10)
 | |
|         }
 | |
|         token = pyjwt.encode(payload, jwt_secret, algorithm='HS256')
 | |
|         logger.error(f"JWT generated: {token}")
 | |
|         return JsonResponse({'status': 1, 'token': token, 'ssh_user': ssh_user})
 | |
|     except Exception as e:
 | |
|         logger.error(f"Exception in get_terminal_jwt: {str(e)}")
 | |
|         return JsonResponse({'status': 0, 'error_message': str(e)})
 | |
| 
 | |
| def fetchWPBackups(request):
 | |
|     try:
 | |
|         userID = request.session['userID']
 | |
| 
 | |
|         result = pluginManager.preWebsiteCreation(request)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         wm = WebsiteManager()
 | |
|         coreResult = wm.fetchWPBackups(userID, json.loads(request.body))
 | |
| 
 | |
|         result = pluginManager.postWebsiteCreation(request, coreResult)
 | |
|         if result != 200:
 | |
|             return result
 | |
| 
 | |
|         return coreResult
 | |
| 
 | |
|     except KeyError:
 | |
|         return redirect(loadLoginPage) |