mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-10-26 07:46:35 +01:00
2190 lines
57 KiB
Python
2190 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) |