2018-11-08 13:19:36 +05:00
|
|
|
from loginSystem.models import Administrator
|
|
|
|
|
from django.shortcuts import HttpResponse
|
|
|
|
|
import json
|
|
|
|
|
from plogical.website import WebsiteManager
|
2018-11-20 15:43:43 +05:00
|
|
|
from plogical.acl import ACLManager
|
2018-11-08 13:19:36 +05:00
|
|
|
from plogical.virtualHostUtilities import virtualHostUtilities
|
2018-11-20 15:43:43 +05:00
|
|
|
from websiteFunctions.models import Websites
|
2018-11-08 13:19:36 +05:00
|
|
|
import subprocess, shlex
|
|
|
|
|
from databases.databaseManager import DatabaseManager
|
|
|
|
|
from dns.dnsManager import DNSManager
|
|
|
|
|
from mailServer.mailserverManager import MailServerManager
|
|
|
|
|
from ftp.ftpManager import FTPManager
|
|
|
|
|
from manageSSL.views import issueSSL
|
|
|
|
|
from plogical.backupManager import BackupManager
|
2018-11-16 14:41:40 +05:00
|
|
|
import userManagment.views as um
|
|
|
|
|
from packages.packagesManager import PackagesManager
|
2018-11-20 15:43:43 +05:00
|
|
|
from plogical.processUtilities import ProcessUtilities
|
2018-11-21 14:50:27 +05:00
|
|
|
from firewall.firewallManager import FirewallManager
|
|
|
|
|
from serverLogs.views import getLogsFromFile
|
2018-11-08 13:19:36 +05:00
|
|
|
|
|
|
|
|
class CloudManager:
|
2018-11-20 15:43:43 +05:00
|
|
|
def __init__(self, data=None, admin = None):
|
2018-11-08 13:19:36 +05:00
|
|
|
self.data = data
|
2018-11-20 15:43:43 +05:00
|
|
|
self.admin = admin
|
2018-11-08 13:19:36 +05:00
|
|
|
|
|
|
|
|
def ajaxPre(self, status, errorMessage):
|
|
|
|
|
final_dic = {'status': status, 'error_message': errorMessage}
|
|
|
|
|
final_json = json.dumps(final_dic)
|
|
|
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def verifyLogin(self, request):
|
2018-11-08 13:19:36 +05:00
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
if request.META['HTTP_AUTHORIZATION'] == self.admin.token:
|
|
|
|
|
return 1, self.ajaxPre(1, None)
|
2018-11-08 13:19:36 +05:00
|
|
|
else:
|
2018-11-20 15:43:43 +05:00
|
|
|
return 0, self.ajaxPre(0, 'Invalid login information.')
|
2018-11-08 13:19:36 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchWebsites(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.getFurtherAccounts(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitWebsiteDeletion(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.submitWebsiteDeletion(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitWebsiteCreation(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.submitWebsiteCreation(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchWebsiteDataJSON(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.fetchWebsiteDataJSON(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchWebsiteData(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
currentACL = ACLManager.loadedACL(self.admin.pk)
|
|
|
|
|
website = Websites.objects.get(domain=self.data['domainName'])
|
|
|
|
|
admin = Administrator.objects.get(pk=self.admin.pk)
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if ACLManager.checkOwnership(self.data['domainName'], admin, currentACL) == 1:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
return ACLManager.loadErrorJson()
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
Data = {}
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
Data['ftpAllowed'] = website.package.ftpAccounts
|
|
|
|
|
Data['ftpUsed'] = website.users_set.all().count()
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
Data['dbUsed'] = website.databases_set.all().count()
|
|
|
|
|
Data['dbAllowed'] = website.package.dataBases
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
diskUsageDetails = virtualHostUtilities.getDiskUsage("/home/" + self.data['domainName'],
|
|
|
|
|
website.package.diskSpace)
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
## bw usage calculation
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
try:
|
|
|
|
|
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
|
|
|
|
|
execPath = execPath + " findDomainBW --virtualHostName " + self.data[
|
|
|
|
|
'domainName'] + " --bandwidth " + str(
|
|
|
|
|
website.package.bandwidth)
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
output = subprocess.check_output(shlex.split(execPath))
|
|
|
|
|
bwData = output.split(",")
|
|
|
|
|
except BaseException:
|
|
|
|
|
bwData = [0, 0]
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
## bw usage calculations
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
Data['bwAllowed'] = website.package.bandwidth
|
|
|
|
|
Data['bwUsed'] = bwData[0]
|
|
|
|
|
Data['bwUsage'] = bwData[1]
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if diskUsageDetails != None:
|
|
|
|
|
if diskUsageDetails[1] > 100:
|
|
|
|
|
diskUsageDetails[1] = 100
|
2018-11-08 13:19:36 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
Data['diskUsage'] = diskUsageDetails[1]
|
|
|
|
|
Data['diskUsed'] = diskUsageDetails[0]
|
|
|
|
|
Data['diskAllowed'] = website.package.diskSpace
|
2018-11-08 13:19:36 +05:00
|
|
|
else:
|
2018-11-20 15:43:43 +05:00
|
|
|
Data['diskUsed'] = 0
|
|
|
|
|
Data['diskUsage'] = 0
|
|
|
|
|
Data['diskInMBTotal'] = website.package.diskSpace
|
|
|
|
|
|
|
|
|
|
Data['status'] = 1
|
|
|
|
|
final_json = json.dumps(Data)
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-08 13:19:36 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchModifyData(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.submitWebsiteModify(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def saveModifications(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.saveWebsiteChanges(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitDBCreation(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DatabaseManager()
|
|
|
|
|
return dm.submitDBCreation(self.admin.pk, self.data, 1)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchDatabases(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DatabaseManager()
|
|
|
|
|
return dm.fetchDatabases(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitDatabaseDeletion(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DatabaseManager()
|
|
|
|
|
return dm.submitDatabaseDeletion(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def changePassword(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DatabaseManager()
|
|
|
|
|
return dm.changePassword(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getCurrentRecordsForDomain(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.getCurrentRecordsForDomain(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def deleteDNSRecord(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.deleteDNSRecord(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def addDNSRecord(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
dm = DNSManager()
|
|
|
|
|
return dm.addDNSRecord(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitEmailCreation(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.submitEmailCreation()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getEmailsForDomain(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.getEmailsForDomain()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitEmailDeletion(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.submitEmailDeletion()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitPasswordChange(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.submitPasswordChange()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchCurrentForwardings(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.fetchCurrentForwardings()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitForwardDeletion(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.submitForwardDeletion()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitEmailForwardingCreation(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.submitEmailForwardingCreation()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchDKIMKeys(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.fetchDKIMKeys()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def generateDKIMKeys(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
msm = MailServerManager(request)
|
|
|
|
|
return msm.generateDKIMKeys()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitFTPCreation(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
fm = FTPManager(request)
|
|
|
|
|
return fm.submitFTPCreation()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getAllFTPAccounts(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
fm = FTPManager(request)
|
|
|
|
|
return fm.getAllFTPAccounts()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitFTPDelete(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
fm = FTPManager(request)
|
|
|
|
|
return fm.submitFTPDelete()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def changeFTPPassword(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
fm = FTPManager(request)
|
|
|
|
|
return fm.changePassword()
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def issueSSL(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return issueSSL(request)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def statusFunc(self):
|
|
|
|
|
try:
|
|
|
|
|
statusFile = self.data['statusFile']
|
|
|
|
|
statusData = open(statusFile, 'r').readlines()
|
|
|
|
|
lastLine = statusData[-1]
|
|
|
|
|
|
|
|
|
|
if lastLine.find('[200]') > -1:
|
|
|
|
|
command = 'sudo rm -f ' + statusFile
|
|
|
|
|
subprocess.call(shlex.split(command))
|
|
|
|
|
data_ret = {'status': 1, 'abort': 1, 'installationProgress': "100", 'currentStatus': lastLine}
|
|
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
elif lastLine.find('[404]') > -1:
|
|
|
|
|
data_ret = {'status': 0, 'abort': 1, 'installationProgress': "0", 'error_message': lastLine}
|
|
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
else:
|
|
|
|
|
progress = lastLine.split(',')
|
|
|
|
|
currentStatus = progress[0]
|
|
|
|
|
try:
|
|
|
|
|
installationProgress = progress[1]
|
|
|
|
|
except:
|
|
|
|
|
installationProgress = 0
|
2018-11-20 15:43:43 +05:00
|
|
|
data_ret = {'status': 1, 'abort': 0, 'installationProgress': installationProgress,
|
|
|
|
|
'currentStatus': currentStatus}
|
2018-11-08 13:19:36 +05:00
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
|
|
except BaseException, msg:
|
2018-11-20 15:43:43 +05:00
|
|
|
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
|
2018-11-08 13:19:36 +05:00
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
|
|
def submitDomainCreation(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.submitDomainCreation(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchDomains(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.fetchDomains(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitDomainDeletion(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.submitDomainDeletion(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def changeOpenBasedir(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.changeOpenBasedir(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def changePHP(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.changePHP(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def backupStatusFunc(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
bm = BackupManager()
|
|
|
|
|
return bm.backupStatus(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
2018-11-20 15:43:43 +05:00
|
|
|
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
|
2018-11-08 13:19:36 +05:00
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
|
|
def submitBackupCreation(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
bm = BackupManager()
|
|
|
|
|
return bm.submitBackupCreation(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getCurrentBackups(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
bm = BackupManager()
|
|
|
|
|
return bm.getCurrentBackups(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def deleteBackup(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
bm = BackupManager()
|
|
|
|
|
return bm.deleteBackup(self.admin.pk, self.data)
|
2018-11-08 13:19:36 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
2018-11-16 14:41:40 +05:00
|
|
|
def fetchACLs(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
userID = self.admin.pk
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if currentACL['admin'] == 1:
|
|
|
|
|
aclNames = ACLManager.unFileteredACLs()
|
|
|
|
|
elif currentACL['changeUserACL'] == 1:
|
|
|
|
|
aclNames = ACLManager.unFileteredACLs()
|
|
|
|
|
elif currentACL['createNewUser'] == 1:
|
|
|
|
|
aclNames = ['user']
|
|
|
|
|
else:
|
|
|
|
|
return ACLManager.loadError()
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
for items in aclNames:
|
|
|
|
|
dic = {'acl': items}
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
2018-11-16 14:41:40 +05:00
|
|
|
else:
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitUserCreation(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.submitUserCreation(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def fetchUsers(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
userID = self.admin.pk
|
|
|
|
|
allUsers = ACLManager.loadUserObjects(userID)
|
|
|
|
|
|
|
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
|
|
|
|
|
|
|
|
|
for user in allUsers:
|
|
|
|
|
dic = {
|
|
|
|
|
"id": user.id,
|
|
|
|
|
"userName": user.userName,
|
|
|
|
|
"firstName": user.firstName,
|
|
|
|
|
"lastName": user.lastName,
|
|
|
|
|
"email": user.email,
|
|
|
|
|
"acl": user.acl.name,
|
|
|
|
|
"websitesLimit": user.initWebsitesLimit
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
|
|
|
|
else:
|
|
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
|
|
|
|
|
|
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def submitUserDeletion(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.submitUserDeletion(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def saveModificationsUser(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.saveModifications(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def userWithResellerPriv(self):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
userID = self.admin.pk
|
|
|
|
|
allUsers = ACLManager.userWithResellerPriv(userID)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
for user in allUsers:
|
|
|
|
|
dic = {
|
|
|
|
|
"userName": user,
|
|
|
|
|
}
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
|
|
|
|
else:
|
|
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def saveResellerChanges(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.saveResellerChanges(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def changeACLFunc(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.changeACLFunc(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def createACLFunc(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.createACLFunc(request)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def findAllACLs(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
userID = self.admin.pk
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if currentACL['admin'] == 1:
|
|
|
|
|
aclNames = ACLManager.findAllACLs()
|
|
|
|
|
else:
|
|
|
|
|
return ACLManager.loadErrorJson()
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
for items in aclNames:
|
|
|
|
|
dic = {'acl': items}
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
2018-11-16 14:41:40 +05:00
|
|
|
else:
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def deleteACLFunc(self, request):
|
|
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.deleteACLFunc(request)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def fetchACLDetails(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.fetchACLDetails(request)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def submitACLModifications(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return um.submitACLModifications(request)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def submitPackage(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
pm = PackagesManager(request)
|
|
|
|
|
return pm.submitPackage()
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def fetchPackages(self, request):
|
2018-11-16 14:41:40 +05:00
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
userID = self.admin.pk
|
|
|
|
|
currentACL = ACLManager.loadedACL(userID)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if ACLManager.currentContextPermission(currentACL, 'deletePackage') == 0:
|
|
|
|
|
return ACLManager.loadError()
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
packageList = ACLManager.loadPackageObjects(userID, currentACL)
|
|
|
|
|
|
|
|
|
|
json_data = "["
|
|
|
|
|
checker = 0
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
for items in packageList:
|
|
|
|
|
dic = {
|
|
|
|
|
'packageName': items.packageName,
|
|
|
|
|
'allowedDomains': items.allowedDomains,
|
|
|
|
|
'diskSpace': items.diskSpace,
|
|
|
|
|
'bandwidth': items.bandwidth,
|
|
|
|
|
'emailAccounts': items.emailAccounts,
|
|
|
|
|
'dataBases': items.dataBases,
|
|
|
|
|
'ftpAccounts': items.ftpAccounts,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if checker == 0:
|
|
|
|
|
json_data = json_data + json.dumps(dic)
|
|
|
|
|
checker = 1
|
|
|
|
|
else:
|
|
|
|
|
json_data = json_data + ',' + json.dumps(dic)
|
|
|
|
|
|
|
|
|
|
json_data = json_data + ']'
|
|
|
|
|
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
|
|
|
|
|
return HttpResponse(final_json)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def submitPackageDelete(self, request):
|
2018-11-16 14:41:40 +05:00
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
pm = PackagesManager(request)
|
|
|
|
|
return pm.submitDelete()
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def submitPackageModify(self, request):
|
|
|
|
|
try:
|
|
|
|
|
pm = PackagesManager(request)
|
|
|
|
|
return pm.saveChanges()
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def getDataFromLogFile(self, request):
|
|
|
|
|
try:
|
|
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.getDataFromLogFile(self.admin.pk, self.data)
|
2018-11-16 14:41:40 +05:00
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def fetchErrorLogs(self, request):
|
2018-11-16 14:41:40 +05:00
|
|
|
try:
|
2018-11-20 15:43:43 +05:00
|
|
|
wm = WebsiteManager()
|
|
|
|
|
return wm.fetchErrorLogs(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def submitApplicationInstall(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
wm = WebsiteManager()
|
2018-11-16 14:41:40 +05:00
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
if self.data['selectedApplication'] == 'WordPress with LSCache':
|
|
|
|
|
return wm.installWordpress(self.admin.pk, self.data)
|
|
|
|
|
elif self.data['selectedApplication'] == 'Prestashop':
|
|
|
|
|
return wm.prestaShopInstall(self.admin.pk, self.data)
|
|
|
|
|
elif self.data['selectedApplication'] == 'Joomla':
|
|
|
|
|
return wm.installJoomla(self.admin.pk, self.data)
|
2018-11-16 14:41:40 +05:00
|
|
|
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
2018-11-20 15:43:43 +05:00
|
|
|
def obtainServer(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
data_ret = {'status': 1, 'serverStatus': ProcessUtilities.decideServer()}
|
|
|
|
|
json_data = json.dumps(data_ret)
|
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
2018-11-21 14:50:27 +05:00
|
|
|
|
|
|
|
|
def getSSHConfigs(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.getSSHConfigs(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def saveSSHConfigs(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.saveSSHConfigs(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def deleteSSHKey(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.deleteSSHKey(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def addSSHKey(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.addSSHKey(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getCurrentRules(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.getCurrentRules(self.admin.pk)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def addRule(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.addRule(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def deleteRule(self):
|
|
|
|
|
try:
|
|
|
|
|
fm = FirewallManager()
|
|
|
|
|
return fm.deleteRule(self.admin.pk, self.data)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|
|
|
|
|
|
|
|
|
|
def getLogsFromFile(self, request):
|
|
|
|
|
try:
|
|
|
|
|
request.session['userID'] = self.admin.pk
|
|
|
|
|
return getLogsFromFile(request)
|
|
|
|
|
except BaseException, msg:
|
|
|
|
|
return self.ajaxPre(0, str(msg))
|