Files
CyberPanel/websiteFunctions/views.py

2047 lines
57 KiB
Python
Raw Normal View History

2017-10-24 19:16:36 +05:00
# -*- coding: utf-8 -*-
2019-12-10 15:09:10 +05:00
2017-10-24 19:16:36 +05:00
2021-03-03 20:09:13 +05:00
from django.shortcuts import redirect
2025-05-02 15:44:36 +05:00
from django.http import HttpResponse, JsonResponse
2017-10-24 19:16:36 +05:00
from loginSystem.models import Administrator
from loginSystem.views import loadLoginPage
import json
2022-05-13 14:09:36 +05:00
import plogical.CyberCPLogFileWriter as logging
2025-05-02 15:44:36 +05:00
from plogical.acl import ACLManager
2022-05-13 14:09:36 +05:00
2021-03-03 20:09:13 +05:00
from plogical.httpProc import httpProc
2022-05-14 13:11:13 +05:00
from websiteFunctions.models import wpplugins
2019-08-03 14:53:31 +05:00
from websiteFunctions.website import WebsiteManager
2018-10-03 18:46:44 +05:00
from websiteFunctions.pluginManager import pluginManager
from django.views.decorators.csrf import csrf_exempt
2025-04-11 16:11:27 +05:00
from .dockerviews import startContainer as docker_startContainer
from .dockerviews import stopContainer as docker_stopContainer
from .dockerviews import restartContainer as docker_restartContainer
2025-05-02 15:44:36 +05:00
from .resource_monitoring import get_website_resource_usage
2025-05-18 13:43:51 +05:00
import jwt
from datetime import datetime, timedelta
import OpenSSL
from plogical.processUtilities import ProcessUtilities
2025-05-18 18:16:33 +05:00
import os
import re
2017-10-24 19:16:36 +05:00
def loadWebsitesHome(request):
2021-03-03 20:09:13 +05:00
val = request.session['userID']
admin = Administrator.objects.get(pk=val)
proc = httpProc(request, 'websiteFunctions/index.html',
{"type": admin.type})
return proc.render()
2017-10-24 19:16:36 +05:00
2018-03-02 18:13:26 +05:00
def createWebsite(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.createWebsite(request, userID)
2018-03-02 18:13:26 +05:00
except KeyError:
return redirect(loadLoginPage)
2022-05-13 14:09:36 +05:00
def WPCreate(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
2022-11-16 13:47:30 +05:00
return wm.WPCreate(request, userID,)
2022-05-13 14:09:36 +05:00
except KeyError:
return redirect(loadLoginPage)
2022-05-24 11:16:49 +05:00
def ListWPSites(request):
try:
userID = request.session['userID']
2022-06-03 17:23:48 +05:00
DeleteID = request.GET.get('DeleteID')
2022-05-24 11:16:49 +05:00
wm = WebsiteManager()
2022-06-03 17:23:48 +05:00
return wm.ListWPSites(request, userID, DeleteID)
2022-05-24 11:16:49 +05:00
except KeyError:
return redirect(loadLoginPage)
def WPHome(request):
try:
userID = request.session['userID']
WPid = request.GET.get('ID')
2022-05-27 14:41:56 +05:00
DeleteID = request.GET.get('DeleteID')
2022-05-24 11:16:49 +05:00
wm = WebsiteManager()
2022-05-27 14:41:56 +05:00
return wm.WPHome(request, userID, WPid, DeleteID)
2022-05-24 11:16:49 +05:00
except KeyError:
return redirect(loadLoginPage)
2022-06-11 13:39:48 +05:00
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)
2022-06-24 17:01:40 +05:00
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)
2022-10-05 17:06:01 +05:00
def WordpressPricing(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.WordpressPricing(request, userID,)
except KeyError:
return redirect(loadLoginPage)
2022-06-08 15:55:36 +05:00
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)
2022-06-07 13:47:34 +05:00
2022-05-24 11:16:49 +05:00
def AutoLogin(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
2022-06-04 15:37:41 +05:00
return wm.AutoLogin(request, userID)
2022-05-24 11:16:49 +05:00
except KeyError:
return redirect(loadLoginPage)
2022-05-13 14:09:36 +05:00
def ConfigurePlugins(request):
try:
userID = request.session['userID']
2022-05-14 13:11:13 +05:00
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
2022-05-13 14:09:36 +05:00
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)
2022-05-27 14:41:56 +05:00
2022-05-13 14:09:36 +05:00
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)
2018-03-02 18:13:26 +05:00
2022-05-14 13:11:13 +05:00
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)
2022-05-19 17:38:21 +05:00
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)
2022-05-24 11:16:49 +05:00
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))
2022-05-27 14:41:56 +05:00
# 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)
2022-06-18 17:23:09 +05:00
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)
2022-05-27 14:41:56 +05:00
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))
2022-05-24 11:16:49 +05:00
result = pluginManager.postWebsiteCreation(request, coreResult)
if result != 200:
return result
return coreResult
except KeyError:
return redirect(loadLoginPage)
2022-06-05 17:55:49 +05:00
def DeploytoProduction(request):
try:
userID = request.session['userID']
2022-06-07 13:47:34 +05:00
#result = pluginManager.preWebsiteCreation(request)
2022-06-05 17:55:49 +05:00
2022-06-07 13:47:34 +05:00
#if result != 200:
# return result
2022-06-05 17:55:49 +05:00
wm = WebsiteManager()
2022-06-07 13:47:34 +05:00
return wm.DeploytoProduction(userID, json.loads(request.body))
2022-06-05 17:55:49 +05:00
2022-06-07 13:47:34 +05:00
#result = pluginManager.postWebsiteCreation(request, coreResult)
#if result != 200:
# return result
2022-06-05 17:55:49 +05:00
2022-06-07 13:47:34 +05:00
#return coreResult
2022-06-05 17:55:49 +05:00
except KeyError:
return redirect(loadLoginPage)
2022-06-06 13:47:09 +05:00
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)
2022-05-24 11:16:49 +05:00
2022-06-11 13:39:48 +05:00
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)
2022-06-24 17:01:40 +05:00
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)
2022-06-29 13:35:53 +05:00
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)
2022-07-14 10:18:49 -07:00
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)
2022-06-20 13:27:55 +05:00
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)
2022-06-11 13:39:48 +05:00
2022-05-24 11:16:49 +05:00
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)
2022-05-24 11:16:49 +05:00
wm = WebsiteManager()
return wm.UpdateWPSettings(userID, data)
2022-05-24 11:16:49 +05:00
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)
2022-05-27 14:41:56 +05:00
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)
2022-05-14 13:11:13 +05:00
2018-03-02 18:13:26 +05:00
def modifyWebsite(request):
2018-03-01 16:11:49 +00:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.modifyWebsite(request, userID)
2019-12-10 15:09:10 +05:00
except BaseException as msg:
2018-08-26 04:55:51 +05:00
return HttpResponse(str(msg))
2018-03-02 18:13:26 +05:00
2018-03-01 16:11:49 +00:00
except KeyError:
return redirect(loadLoginPage)
2018-03-02 18:13:26 +05:00
def deleteWebsite(request):
2018-03-01 16:11:49 +00:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.deleteWebsite(request, userID)
2018-03-02 18:13:26 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-03-01 16:11:49 +00:00
def CreateNewDomain(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.CreateNewDomain(request, userID)
except KeyError:
return redirect(loadLoginPage)
2018-03-02 18:13:26 +05:00
def siteState(request):
2018-03-01 16:11:49 +00:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-09-24 18:56:48 +05:00
return wm.siteState(request, userID)
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-03-01 16:11:49 +00:00
2018-08-26 04:55:51 +05:00
def listWebsites(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.listWebsites(request, userID)
2018-03-02 18:13:26 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-03-01 16:11:49 +00:00
2019-12-22 17:03:58 +05:00
def listChildDomains(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.listChildDomains(request, userID)
except KeyError:
return redirect(loadLoginPage)
2018-03-02 18:13:26 +05:00
def submitWebsiteCreation(request):
2018-03-01 16:11:49 +00:00
try:
2018-08-22 00:37:43 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preWebsiteCreation(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitWebsiteCreation(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postWebsiteCreation(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-22 00:37:43 +05:00
2018-08-26 04:55:51 +05:00
def submitDomainCreation(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preDomainCreation(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitDomainCreation(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postDomainCreation(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-22 00:37:43 +05:00
2018-08-26 04:55:51 +05:00
def fetchDomains(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.fetchDomains(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-03-02 18:13:26 +05:00
2019-02-22 09:19:16 +05:00
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:
2019-02-22 09:19:16 +05:00
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
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)
2019-12-22 17:03:58 +05:00
def fetchChildDomainsMain(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.fetchChildDomainsMain(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def submitWebsiteDeletion(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preWebsiteDeletion(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitWebsiteDeletion(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postWebsiteDeletion(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-11-05 03:02:51 +05:00
2018-08-26 04:55:51 +05:00
def submitDomainDeletion(request):
try:
2017-11-05 03:02:51 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preDomainDeletion(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitDomainDeletion(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postDomainDeletion(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2019-12-23 17:02:34 +05:00
def convertDomainToSite(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.convertDomainToSite(userID, request)
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def submitWebsiteStatus(request):
try:
2018-07-29 01:20:46 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preWebsiteSuspension(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitWebsiteStatus(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postWebsiteSuspension(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-07-29 01:20:46 +05:00
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def submitWebsiteModify(request):
try:
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
wm = WebsiteManager()
return wm.submitWebsiteModify(userID, json.loads(request.body))
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def saveWebsiteChanges(request):
try:
2018-05-08 21:25:37 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preWebsiteModification(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.saveWebsiteChanges(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postWebsiteModification(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-06-30 15:29:56 +05:00
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-18 00:39:10 +05:00
2018-08-26 04:55:51 +05:00
def domain(request, domain):
try:
2017-11-05 03:02:51 +05:00
2018-10-17 23:20:02 +05:00
if not request.GET._mutable:
request.GET._mutable = True
request.GET['domain'] = domain
result = pluginManager.preDomain(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
wm = WebsiteManager(domain)
2018-10-17 23:20:02 +05:00
coreResult = wm.loadDomainHome(request, userID)
result = pluginManager.postDomain(request, coreResult)
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-12-09 22:30:10 +05:00
2018-08-26 04:55:51 +05:00
def launchChild(request, domain, childDomain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain, childDomain)
return wm.launchChild(request, userID)
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def getDataFromLogFile(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.getDataFromLogFile(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def fetchErrorLogs(request):
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.fetchErrorLogs(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def getDataFromConfigFile(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.getDataFromConfigFile(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def saveConfigsToFile(request):
try:
2018-10-03 18:46:44 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preSaveConfigsToFile(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.saveConfigsToFile(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postSaveConfigsToFile(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def getRewriteRules(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.getRewriteRules(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def saveRewriteRules(request):
try:
2018-10-03 18:46:44 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preSaveRewriteRules(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.saveRewriteRules(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postSaveRewriteRules(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def saveSSL(request):
try:
2018-10-03 18:46:44 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preSaveSSL(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.saveSSL(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postSaveSSL(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def changePHP(request):
try:
2018-10-03 18:46:44 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preChangePHP(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.changePHP(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postChangePHP(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def listCron(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.listCron(request, userID)
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def getWebsiteCron(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.getWebsiteCron(userID, json.loads(request.body))
except KeyError:
2018-08-26 04:55:51 +05:00
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def getCronbyLine(request):
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.getCronbyLine(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def saveCronChanges(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.saveCronChanges(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def remCronbyLine(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preRemCronbyLine(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.remCronbyLine(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postRemCronbyLine(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def addNewCron(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preAddNewCron(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.addNewCron(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postAddNewCron(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def domainAlias(request, domain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain)
return wm.domainAlias(request, userID)
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def submitAliasCreation(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preSubmitAliasCreation(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.submitAliasCreation(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postSubmitAliasCreation(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2018-03-01 12:40:58 +05:00
2018-08-26 04:55:51 +05:00
def issueAliasSSL(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.issueAliasSSL(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def delateAlias(request):
try:
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preDelateAlias(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.delateAlias(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postDelateAlias(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def changeOpenBasedir(request):
try:
2018-10-03 18:46:44 +05:00
2018-08-26 04:55:51 +05:00
userID = request.session['userID']
2018-10-03 18:46:44 +05:00
result = pluginManager.preChangeOpenBasedir(request)
if result != 200:
return result
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
2018-10-03 18:46:44 +05:00
coreResult = wm.changeOpenBasedir(userID, json.loads(request.body))
2018-10-05 23:05:02 +05:00
result = pluginManager.postChangeOpenBasedir(request, coreResult)
2018-10-03 18:46:44 +05:00
if result != 200:
return result
return coreResult
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def wordpressInstall(request, domain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain)
return wm.wordpressInstall(request, userID)
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def installWordpress(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.installWordpress(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def installWordpressStatus(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.installWordpressStatus(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def joomlaInstall(request, domain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain)
return wm.joomlaInstall(request, userID)
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def installJoomla(request):
2017-10-24 19:16:36 +05:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.installJoomla(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def setupGit(request, domain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain)
return wm.setupGit(request, userID)
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def setupGitRepo(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.setupGitRepo(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-11-05 03:02:51 +05:00
@csrf_exempt
2018-08-26 04:55:51 +05:00
def gitNotify(request, domain):
try:
wm = WebsiteManager(domain)
return wm.gitNotify()
except KeyError:
return redirect(loadLoginPage)
2017-10-24 19:16:36 +05:00
2018-08-26 04:55:51 +05:00
def detachRepo(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.detachRepo(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2018-08-26 04:55:51 +05:00
def changeBranch(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.changeBranch(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
2017-12-09 22:30:10 +05:00
2018-08-26 04:55:51 +05:00
def installPrestaShop(request, domain):
try:
userID = request.session['userID']
wm = WebsiteManager(domain)
return wm.installPrestaShop(request, userID)
except KeyError:
return redirect(loadLoginPage)
2017-11-05 03:02:51 +05:00
2019-11-07 09:37:06 +05:00
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)
2020-08-25 15:49:52 +05:00
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)
2018-08-26 04:55:51 +05:00
def prestaShopInstall(request):
2018-08-05 01:46:31 +05:00
try:
2018-08-18 00:39:10 +05:00
userID = request.session['userID']
2018-08-26 04:55:51 +05:00
wm = WebsiteManager()
return wm.prestaShopInstall(userID, json.loads(request.body))
2018-08-05 01:46:31 +05:00
except KeyError:
return redirect(loadLoginPage)
def sshAccess(request, domain):
try:
2025-05-18 13:43:51 +05:00
# 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))
2019-08-03 14:53:31 +05:00
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))
2020-03-07 19:01:54 +05:00
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)
2020-03-07 21:03:17 +05:00
except KeyError:
return redirect(loadLoginPage)
def fetchFolderDetails(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.fetchFolderDetails(userID, json.loads(request.body))
2020-03-09 08:59:57 +05:00
except KeyError:
return redirect(loadLoginPage)
def initRepo(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.initRepo(userID, json.loads(request.body))
2020-03-09 16:30:56 +05:00
except KeyError:
return redirect(loadLoginPage)
def setupRemote(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.setupRemote(userID, json.loads(request.body))
2020-03-10 12:49:35 +05:00
except KeyError:
return redirect(loadLoginPage)
def changeGitBranch(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.changeGitBranch(userID, json.loads(request.body))
2020-03-10 15:06:42 +05:00
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))
2020-03-10 21:04:57 +05:00
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))
2020-03-11 15:00:20 +05:00
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))
2020-03-12 13:30:18 +05:00
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))
2020-03-12 18:56:28 +05:00
except KeyError:
return redirect(loadLoginPage)
def fetchCommits(request):
try:
userID = request.session['userID']
wm = WebsiteManager()
return wm.fetchCommits(userID, json.loads(request.body))
2020-03-13 11:12:40 +05:00
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))
2020-03-16 19:14:39 +05:00
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))
2020-03-19 22:13:47 +05:00
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)
2020-03-19 22:13:47 +05:00
@csrf_exempt
def webhook(request, domain):
try:
wm = WebsiteManager()
return wm.webhook(domain, json.loads(request.body))
except KeyError:
2022-06-04 15:37:41 +05:00
return redirect(loadLoginPage)
2023-05-15 21:16:10 +05:00
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)
2023-12-20 16:01:01 +05:00
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)
2023-12-22 07:15:19 +05:00
def Dockersitehome(request, dockerapp):
2023-12-20 16:01:01 +05:00
try:
userID = request.session['userID']
2023-12-22 07:15:19 +05:00
wm = WebsiteManager(dockerapp)
2023-12-20 16:01:01 +05:00
return wm.Dockersitehome(request, userID, None)
2025-04-04 15:13:57 +05:00
except KeyError:
return redirect(loadLoginPage)
def fetchWPDetails(request):
try:
userID = request.session['userID']
2025-04-04 17:32:10 +05:00
data = {
'domain': request.POST.get('domain')
}
2025-04-04 15:13:57 +05:00
wm = WebsiteManager()
return wm.fetchWPSitesForDomain(userID, data)
2025-04-11 16:11:27 +05:00
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')
2025-04-12 20:09:11 +05:00
except KeyError:
2025-05-02 15:44:36 +05:00
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)}')
2025-05-18 13:43:51 +05:00
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
2025-05-18 19:20:38 +05:00
# Read JWT_SECRET from fastapi_ssh_server.py using ProcessUtilities
2025-05-18 18:16:33 +05:00
jwt_secret = None
try:
2025-05-18 19:20:38 +05:00
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)
2025-05-18 19:22:13 +05:00
if os.path.exists(ProcessUtilities.debugPath):
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter
CyberCPLogFileWriter.writeLog(f"JWT_SECRET: {jwt_secret}")
2025-05-18 19:20:38 +05:00
break
2025-05-18 18:16:33 +05:00
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
2025-05-18 13:43:51 +05:00
payload = {
'user_id': user_id,
'ssh_user': ssh_user,
'exp': datetime.utcnow() + timedelta(minutes=10)
}
2025-05-18 18:16:33 +05:00
token = pyjwt.encode(payload, jwt_secret, algorithm='HS256')
2025-05-18 13:43:51 +05:00
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)})