From 2d891fdd46674ba8a4d6f31b530345104def1457 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 4 Apr 2020 23:48:05 +0500 Subject: [PATCH 001/240] feature: allow custom path for child-domains --- baseTemplate/views.py | 2 +- install/install.py | 2 +- loginSystem/views.py | 2 +- plogical/adminPass.py | 2 +- plogical/upgrade.py | 2 +- plogical/vhost.py | 2 +- websiteFunctions/templates/websiteFunctions/website.html | 2 +- websiteFunctions/website.py | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/baseTemplate/views.py b/baseTemplate/views.py index e293bf359..60494ba00 100755 --- a/baseTemplate/views.py +++ b/baseTemplate/views.py @@ -19,7 +19,7 @@ from plogical.processUtilities import ProcessUtilities # Create your views here. VERSION = '2.0' -BUILD = 0 +BUILD = 1 @ensure_csrf_cookie def renderBase(request): diff --git a/install/install.py b/install/install.py index cf6663b32..73ac7e387 100755 --- a/install/install.py +++ b/install/install.py @@ -15,7 +15,7 @@ from stat import * import stat VERSION = '2.0' -BUILD = 0 +BUILD = 1 char_set = {'small': 'abcdefghijklmnopqrstuvwxyz', 'nums': '0123456789', diff --git a/loginSystem/views.py b/loginSystem/views.py index a12262af4..21b8d7e47 100644 --- a/loginSystem/views.py +++ b/loginSystem/views.py @@ -19,7 +19,7 @@ from django.utils import translation # Create your views here. VERSION = '2.0' -BUILD = 0 +BUILD = 1 def verifyLogin(request): try: diff --git a/plogical/adminPass.py b/plogical/adminPass.py index fc45d27d4..653e3039a 100755 --- a/plogical/adminPass.py +++ b/plogical/adminPass.py @@ -13,7 +13,7 @@ from packages.models import Package from baseTemplate.models import version VERSION = '2.0' -BUILD = 0 +BUILD = 1 if not os.geteuid() == 0: sys.exit("\nOnly root can run this script\n") diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 71c0326c1..64653f606 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -14,7 +14,7 @@ import random import string VERSION = '2.0' -BUILD = 0 +BUILD = 1 class Upgrade: logPath = "/usr/local/lscp/logs/upgradeLog" diff --git a/plogical/vhost.py b/plogical/vhost.py index a1d0457b1..8d8eef190 100755 --- a/plogical/vhost.py +++ b/plogical/vhost.py @@ -857,7 +857,7 @@ class vhost: cmd = shlex.split(command) subprocess.call(cmd, stdout=FNULL, stderr=subprocess.STDOUT) - command = "chmod 755 %s" % (path) + command = "chmod 750 %s" % (path) cmd = shlex.split(command) subprocess.call(cmd, stdout=FNULL, stderr=subprocess.STDOUT) diff --git a/websiteFunctions/templates/websiteFunctions/website.html b/websiteFunctions/templates/websiteFunctions/website.html index cf06c807e..8363ce89a 100755 --- a/websiteFunctions/templates/websiteFunctions/website.html +++ b/websiteFunctions/templates/websiteFunctions/website.html @@ -303,7 +303,7 @@
- +
diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 0b1f89663..9a6703db5 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -285,9 +285,9 @@ class WebsiteManager: if len(path) > 0: path = path.lstrip("/") - path = "/home/" + masterDomain + "/public_html/" + path + path = "/home/" + masterDomain + "/" + path else: - path = "/home/" + masterDomain + "/public_html/" + domain + path = "/home/" + masterDomain + "/" + domain try: apacheBackend = str(data['apacheBackend']) From 36e85efd72766ffd8c1f0d056df87bd12e2187d9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 6 Apr 2020 12:33:20 +0500 Subject: [PATCH 002/240] bug fix: permpath after adding custom path for child domains --- plogical/applicationInstaller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index a48eb85b8..0bb926854 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -265,7 +265,7 @@ class ApplicationInstaller(multi.Thread): statusFile.close() dbName, dbUser, dbPassword = self.dbCreation(tempStatusPath, website.master) - self.permPath = '/home/%s/public_html' % (website.master.domain) + self.permPath = website.path except: website = Websites.objects.get(domain=domainName) @@ -446,7 +446,7 @@ class ApplicationInstaller(multi.Thread): statusFile.close() dbName, dbUser, dbPassword = self.dbCreation(tempStatusPath, website.master) - self.permPath = '/home/%s/public_html' % (website.master.domain) + self.permPath = website.path except: website = Websites.objects.get(domain=domainName) @@ -1068,7 +1068,7 @@ class ApplicationInstaller(multi.Thread): statusFile.close() dbName, dbUser, dbPassword = self.dbCreation(tempStatusPath, website.master) - self.permPath = '/home/%s/public_html' % (website.master.domain) + self.permPath = website.path except: website = Websites.objects.get(domain=domainName) From 56fb4937898a24c76db7d58aec9d8070b2ec50bb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 6 Apr 2020 14:24:52 +0500 Subject: [PATCH 003/240] backups: reduce number of compressions --- plogical/backupUtilities.py | 46 +++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 6ee5b2583..a88de3a72 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -28,7 +28,7 @@ from xml.etree.ElementTree import Element, SubElement from xml.etree import ElementTree from xml.dom import minidom import time -from shutil import copy +from shutil import copy, copytree from random import randint from plogical.processUtilities import ProcessUtilities try: @@ -41,6 +41,9 @@ try: except: pass +VERSION = '2.0' +BUILD = '1' + ## I am not the monster that you think I am.. class backupUtilities: @@ -66,6 +69,12 @@ class backupUtilities: metaFileXML = Element('metaFile') + child = SubElement(metaFileXML, 'VERSION') + child.text = VERSION + + child = SubElement(metaFileXML, 'BUILD') + child.text = str(BUILD) + child = SubElement(metaFileXML, 'masterDomain') child.text = backupDomain @@ -354,7 +363,13 @@ class backupUtilities: ## /home/example.com/backup/backup-example.com-02.13.2018_10-24-52 -- tempStoragePath ## shutil.make_archive - make_archive(os.path.join(tempStoragePath,"public_html"), 'gztar', os.path.join("/home",domainName,"public_html")) + ## Stop making archive of document_root and copy instead + + copytree('/home/%s/public_html' % domainName, tempStoragePath) + + #make_archive(os.path.join(tempStoragePath,"public_html"), 'gztar', os.path.join("/home",domainName,"public_html")) + + ## logging.CyberCPLogFileWriter.statusWriter(status, "Backing up databases..") print('1,None') @@ -412,6 +427,7 @@ class backupUtilities: for childDomain in childDomains: actualChildDomain = childDomain.find('domain').text + childPath = childDomain.find('path').text if os.path.exists(backupUtilities.licenseKey): completPathToConf = backupUtilities.Server_root + '/conf/vhosts/' + actualChildDomain + '/vhost.conf' @@ -433,6 +449,10 @@ class backupUtilities: sslStoragePath) except: pass + + if childPath.find('/home/%s/public_html' % domainName) == -1: + copytree(childPath, '%s/%s-docroot' % (tempStoragePath, actualChildDomain)) + except BaseException as msg: pass @@ -660,6 +680,13 @@ class backupUtilities: backupMetaData = ElementTree.parse(os.path.join(completPath, "meta.xml")) masterDomain = backupMetaData.find('masterDomain').text + try: + version = backupMetaData.find('VERSION').text + build = backupMetaData.find('BUILD').text + except: + version = '2.0' + build = '0' + result = backupUtilities.createWebsiteFromBackup(backupName, dir) if result[0] == 1: @@ -686,6 +713,9 @@ class backupUtilities: logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + result[1] + ". Not able to create Account, Databases and DNS Records, aborting. [575][5009]") return 0 + if float(version) > 2.0 or float(build) > 0: + copytree('%s/public_html' % (completPath), '/home/%s' % masterDomain) + ########### Creating child/sub/addon/parked domains logging.CyberCPLogFileWriter.statusWriter(status, "Creating Child Domains!") @@ -751,11 +781,16 @@ class backupUtilities: except: logging.CyberCPLogFileWriter.writeToFile('While restoring backup we had minor issues for rebuilding vhost conf for: ' + domain + '. However this will be auto healed.') + if float(version) > 2.0 or float(build) > 0: + if path.find('/home/%s/public_html' % masterDomain) == -1: + copytree('%s/%s-docroot' % (completPath, domain), path) + continue else: logging.CyberCPLogFileWriter.writeToFile('Error domain %s' % (domain)) logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + retValues[1] + ". Not able to create child domains, aborting. [635][5009]") return 0 + except BaseException as msg: status = open(os.path.join(completPath,'status'), "w") status.write("Error Message: " + str(msg) +". Not able to create child domains, aborting. [638][5009]") @@ -813,10 +848,11 @@ class backupUtilities: logging.CyberCPLogFileWriter.statusWriter(status, "Extracting web home data!") # /home/backup/backup-example.com-02.13.2018_10-24-52/public_html.tar.gz + ## Moving above v2.0.0 extracting webhome data is not required, thus commenting below lines - tar = tarfile.open(pathToCompressedHome) - tar.extractall(websiteHome) - tar.close() + # tar = tarfile.open(pathToCompressedHome) + # tar.extractall(websiteHome) + # tar.close() ## extracting email accounts From c2a54f09906edc7a80b8e1fe2dd9ff9e08a72fbe Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 6 Apr 2020 15:59:05 +0500 Subject: [PATCH 004/240] bug fix: to restore folders --- plogical/backupUtilities.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index a88de3a72..b1dc175c1 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -28,7 +28,8 @@ from xml.etree.ElementTree import Element, SubElement from xml.etree import ElementTree from xml.dom import minidom import time -from shutil import copy, copytree +from shutil import copy +from distutils.dir_util import copy_tree from random import randint from plogical.processUtilities import ProcessUtilities try: @@ -42,7 +43,7 @@ except: pass VERSION = '2.0' -BUILD = '1' +BUILD = 1 ## I am not the monster that you think I am.. @@ -365,7 +366,8 @@ class backupUtilities: ## Stop making archive of document_root and copy instead - copytree('/home/%s/public_html' % domainName, tempStoragePath) + + copy_tree('/home/%s/public_html' % domainName, '%s/%s' % (tempStoragePath, 'public_html')) #make_archive(os.path.join(tempStoragePath,"public_html"), 'gztar', os.path.join("/home",domainName,"public_html")) @@ -451,7 +453,7 @@ class backupUtilities: pass if childPath.find('/home/%s/public_html' % domainName) == -1: - copytree(childPath, '%s/%s-docroot' % (tempStoragePath, actualChildDomain)) + copy_tree(childPath, '%s/%s-docroot' % (tempStoragePath, actualChildDomain)) except BaseException as msg: pass @@ -649,8 +651,6 @@ class backupUtilities: completPath = "/home/backup/transfer-"+str(dir)+"/"+backupFileName ## without extension originalFile = "/home/backup/transfer-"+str(dir)+"/"+backupName ## with extension - - pathToCompressedHome = os.path.join(completPath,"public_html.tar.gz") if not os.path.exists(completPath): @@ -671,7 +671,6 @@ class backupUtilities: tar.extractall(completPath) tar.close() - logging.CyberCPLogFileWriter.statusWriter(status, "Creating Accounts,Databases and DNS records!") ########### Creating website and its dabases @@ -680,12 +679,14 @@ class backupUtilities: backupMetaData = ElementTree.parse(os.path.join(completPath, "meta.xml")) masterDomain = backupMetaData.find('masterDomain').text + + twoPointO = 0 try: version = backupMetaData.find('VERSION').text build = backupMetaData.find('BUILD').text + twoPointO = 1 except: - version = '2.0' - build = '0' + twoPointO = 0 result = backupUtilities.createWebsiteFromBackup(backupName, dir) @@ -713,8 +714,6 @@ class backupUtilities: logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + result[1] + ". Not able to create Account, Databases and DNS Records, aborting. [575][5009]") return 0 - if float(version) > 2.0 or float(build) > 0: - copytree('%s/public_html' % (completPath), '/home/%s' % masterDomain) ########### Creating child/sub/addon/parked domains @@ -783,14 +782,13 @@ class backupUtilities: if float(version) > 2.0 or float(build) > 0: if path.find('/home/%s/public_html' % masterDomain) == -1: - copytree('%s/%s-docroot' % (completPath, domain), path) + copy_tree('%s/%s-docroot' % (completPath, domain), path) continue else: logging.CyberCPLogFileWriter.writeToFile('Error domain %s' % (domain)) logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + retValues[1] + ". Not able to create child domains, aborting. [635][5009]") return 0 - except BaseException as msg: status = open(os.path.join(completPath,'status'), "w") status.write("Error Message: " + str(msg) +". Not able to create child domains, aborting. [638][5009]") @@ -823,7 +821,6 @@ class backupUtilities: result = mailUtilities.createEmailAccount(masterDomain, username, password, 'restore') if result[0] == 0: raise BaseException(result[1]) - except BaseException as msg: logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + str(msg) +". Not able to create email accounts, aborting. [671][5009]") logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [startRestore]") @@ -850,9 +847,13 @@ class backupUtilities: # /home/backup/backup-example.com-02.13.2018_10-24-52/public_html.tar.gz ## Moving above v2.0.0 extracting webhome data is not required, thus commenting below lines - # tar = tarfile.open(pathToCompressedHome) - # tar.extractall(websiteHome) - # tar.close() + if not twoPointO: + tar = tarfile.open(pathToCompressedHome) + tar.extractall(websiteHome) + tar.close() + else: + if float(version) > 2.0 or float(build) > 0: + copy_tree('%s/public_html' % (completPath), websiteHome) ## extracting email accounts From 0af72a903c7d330e5df46b2556d64fc7afa49e69 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 6 Apr 2020 19:08:41 +0500 Subject: [PATCH 005/240] remove filemanager.py --- filemanager/filemanager.py | 16 +++++++++++++-- plogical/backupUtilities.py | 14 ++++--------- plogical/filemanager.py | 40 ------------------------------------ plogical/processUtilities.py | 7 ++++++- 4 files changed, 24 insertions(+), 53 deletions(-) delete mode 100755 plogical/filemanager.py diff --git a/filemanager/filemanager.py b/filemanager/filemanager.py index fd4d2fbb8..a43f2e4bd 100755 --- a/filemanager/filemanager.py +++ b/filemanager/filemanager.py @@ -5,7 +5,6 @@ from plogical.processUtilities import ProcessUtilities from websiteFunctions.models import Websites from random import randint from django.core.files.storage import FileSystemStorage -import html.parser from plogical.acl import ACLManager class FileManager: @@ -522,4 +521,17 @@ class FileManager: ProcessUtilities.executioner(command) command = 'chmod 750 /home/%s/public_html' % (domainName) - ProcessUtilities.executioner(command) \ No newline at end of file + ProcessUtilities.executioner(command) + + for childs in website.childdomains_set.all(): + command = 'chown -R %s:%s %s/*' % (externalApp, externalApp, childs.path) + ProcessUtilities.popenExecutioner(command) + + command = 'chown -R %s:%s %s/.[^.]*' % (externalApp, externalApp, childs.path) + ProcessUtilities.popenExecutioner(command) + + command = 'chmod 750 %s' % (childs.path) + ProcessUtilities.popenExecutioner(command) + + command = 'chmod %s:%s %s' % (externalApp, groupName, childs.path) + ProcessUtilities.popenExecutioner(command) \ No newline at end of file diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index b1dc175c1..413110892 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -886,18 +886,12 @@ class backupUtilities: installUtilities.reStartLiteSpeed() - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - groupName = 'nobody' - else: - groupName = 'nogroup' + ## Fix permissions - command = "chown -R " + externalApp + ":%s " % (groupName) + websiteHome - cmd = shlex.split(command) - subprocess.call(cmd) + from filemanager.filemanager import FileManager - command = 'chmod 750 %s' % (websiteHome) - cmd = shlex.split(command) - subprocess.call(cmd) + fm = FileManager(None, None) + fm.fixPermissions(masterDomain) except BaseException as msg: status = os.path.join(completPath, 'status') diff --git a/plogical/filemanager.py b/plogical/filemanager.py deleted file mode 100755 index 93ff1f561..000000000 --- a/plogical/filemanager.py +++ /dev/null @@ -1,40 +0,0 @@ -from plogical import CyberCPLogFileWriter as logging -import argparse -from random import randint - -class filemanager: - - @staticmethod - def createTemporaryFile(domainName): - try: - - path = "/home/" + domainName + "/..filemanagerkey" - - fileKey = str(randint(1000, 9999)) - - filemanager = open(path,'w') - filemanager.write(fileKey) - filemanager.close() - - print(fileKey) - - except BaseException as msg: - logging.CyberCPLogFileWriter.writeToFile( - str(msg) + " [createTemporaryFile]") - print("0," + str(msg)) - - -def main(): - - parser = argparse.ArgumentParser(description='CyberPanel Filemanager') - parser.add_argument('function', help='Specific a function to call!') - parser.add_argument('--domainName', help='Domain name!') - - - args = parser.parse_args() - - if args.function == "createTemporaryFile": - filemanager.createTemporaryFile(args.domainName) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/plogical/processUtilities.py b/plogical/processUtilities.py index 1bfe9b31b..ce5e03d10 100755 --- a/plogical/processUtilities.py +++ b/plogical/processUtilities.py @@ -263,12 +263,17 @@ class ProcessUtilities(multi.Thread): def customPoen(self): try: + + if type(self.extraArgs['command']) == str or type(self.extraArgs['command']) == bytes: command = self.extraArgs['command'] else: command = " ".join(self.extraArgs['command']) - ProcessUtilities.sendCommand(command, self.extraArgs['user']) + if getpass.getuser() == 'root': + subprocess.call(command, shell=True) + else: + ProcessUtilities.sendCommand(command, self.extraArgs['user']) return 1 except BaseException as msg: From 806992beb46c8b70813232f42840031ab657712b Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 7 Apr 2020 12:25:14 +0500 Subject: [PATCH 006/240] bug fix: convert child to website --- plogical/applicationInstaller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index 0bb926854..fd8f87ae6 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -123,10 +123,10 @@ class ApplicationInstaller(multi.Thread): command = 'mv %s /home/%s/public_html' % (path, domainName) ProcessUtilities.executioner(command) - website = Websites.objects.get(domain=domainName) + from filemanager.filemanager import FileManager - command = 'chown %s:%s /home/%s/public_html' % (website.externalApp, website.externalApp, domainName) - ProcessUtilities.executioner(command) + fm = FileManager(None, None) + fm.fixPermissions(domainName) statusFile = open(self.tempStatusPath, 'w') statusFile.writelines('Successfully converted. [200]') From 28c3dfc7af9e8346569fc50dc98a30228888efbb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 7 Apr 2020 12:58:07 +0500 Subject: [PATCH 007/240] bug fix: permissions during cpanel import' --- plogical/cPanelImporter.py | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/plogical/cPanelImporter.py b/plogical/cPanelImporter.py index 81e2fa95a..a24d0ee3b 100644 --- a/plogical/cPanelImporter.py +++ b/plogical/cPanelImporter.py @@ -713,23 +713,9 @@ class cPanelImporter: return 0 def FixPermissions(self): - externalApp = self.externalApp - command = "sudo chown -R " + externalApp + ":" + externalApp + " /home/" + self.mainDomain - ProcessUtilities.normalExecutioner(command) - - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - groupName = 'nobody' - else: - groupName = 'nogroup' - - command = "sudo chown -R root:%s /home/" % (groupName) + self.mainDomain + "/logs" - ProcessUtilities.normalExecutioner(command) - - command = "sudo find %s -type d -exec chmod 0755 {} \;" % ("/home/" + self.mainDomain + "/public_html") - ProcessUtilities.normalExecutioner(command) - - command = "sudo find %s -type f -exec chmod 0644 {} \;" % ("/home/" + self.mainDomain + "/public_html") - ProcessUtilities.normalExecutioner(command) + from filemanager.filemanager import FileManager + fm = FileManager(None, None) + fm.fixPermissions(self.mainDomain) def MainController(self): From 585a063a5b6957b5390e7840589d1300785b60ee Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 7 Apr 2020 13:31:23 +0500 Subject: [PATCH 008/240] feature: remove duplicatte compression for emails --- plogical/backupUtilities.py | 40 +++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 24a58e667..945ae845d 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -471,11 +471,10 @@ class backupUtilities: logging.CyberCPLogFileWriter.statusWriter(status, "Backing up email accounts..\n") - try: - make_archive(os.path.join(tempStoragePath, domainName), 'gztar', os.path.join("/home", "vmail", domainName)) - except BaseException as msg: - pass + emailPath = '/home/vmail/%s' % (domainName) + if os.path.exists(emailPath): + copy_tree(emailPath, '%s/vmail' % (tempStoragePath)) ## shutil.make_archive. Creating final package. @@ -862,21 +861,32 @@ class backupUtilities: logging.CyberCPLogFileWriter.statusWriter(status, "Extracting email accounts!") - try: - pathToCompressedEmails = os.path.join(completPath, masterDomain + ".tar.gz") - emailHome = os.path.join("/home","vmail",masterDomain) + if not twoPointO: - tar = tarfile.open(pathToCompressedEmails) - tar.extractall(emailHome) - tar.close() + try: + pathToCompressedEmails = os.path.join(completPath, masterDomain + ".tar.gz") + emailHome = os.path.join("/home","vmail",masterDomain) - ## Change permissions + tar = tarfile.open(pathToCompressedEmails) + tar.extractall(emailHome) + tar.close() - command = "chmod -r vmail:vmail " + emailHome - subprocess.call(shlex.split(command)) + ## Change permissions - except: - pass + command = "chown -R vmail:vmail " + emailHome + subprocess.call(shlex.split(command)) + + except: + pass + else: + + emailsPath = '%s/vmail' % (completPath) + + if os.path.exists(emailsPath): + copy_tree(emailsPath, '/home/vmail/%s' % (masterDomain)) + + command = "chown -R vmail:vmail /home/vmail/%s" % (masterDomain) + ProcessUtilities.executioner(command) ## emails extracted From 26baaa66f78173dce41a209fdd17c0ff753eafed Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 8 Apr 2020 16:54:50 +0500 Subject: [PATCH 009/240] bug fix: cloudapi --- cloudAPI/cloudManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cloudAPI/cloudManager.py b/cloudAPI/cloudManager.py index 1cb8eb780..d6c9058de 100755 --- a/cloudAPI/cloudManager.py +++ b/cloudAPI/cloudManager.py @@ -948,6 +948,7 @@ class CloudManager: def systemStatus(self, request): try: + request.session['userID'] = self.admin.pk return topProcessesStatus(request) except BaseException as msg: return self.ajaxPre(0, str(msg)) From 05474f2d77a2bfb9a3ec941021a88b619ac22010 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 8 Apr 2020 17:24:31 +0500 Subject: [PATCH 010/240] add remove access --- cloudAPI/urls.py | 1 + cloudAPI/views.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/cloudAPI/urls.py b/cloudAPI/urls.py index 2c9619e7b..f87e369b5 100755 --- a/cloudAPI/urls.py +++ b/cloudAPI/urls.py @@ -3,4 +3,5 @@ from . import views urlpatterns = [ url(r'^$', views.router, name='router'), + url(r'^access$', views.access, name='access'), ] \ No newline at end of file diff --git a/cloudAPI/views.py b/cloudAPI/views.py index c8b98dcfe..41cd78308 100755 --- a/cloudAPI/views.py +++ b/cloudAPI/views.py @@ -310,3 +310,30 @@ def router(request): except BaseException as msg: cm = CloudManager(None) return cm.ajaxPre(0, str(msg)) + +@csrf_exempt +def access(request): + try: + data = json.loads(request.body) + + serverUserName = request.GET.get('serverUserName') + token = request.GET.get('token') + + admin = Administrator.objects.get(userName=serverUserName) + + cm = CloudManager(data, admin) + + if admin.api == 0: + return cm.ajaxPre(0, 'API Access Disabled.') + + if token == admin.token: + request.session['userID'] = admin.pk + from django.shortcuts import redirect + from baseTemplate.views import renderBase + return redirect(renderBase) + else: + return cm.ajaxPre(0, 'Unauthorized access.') + + except BaseException as msg: + cm = CloudManager(None) + return cm.ajaxPre(0, str(msg)) From 13e0011529c6248a6846d2ab11230994a86ace4e Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 8 Apr 2020 17:49:41 +0500 Subject: [PATCH 011/240] add remote access --- cloudAPI/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudAPI/views.py b/cloudAPI/views.py index 41cd78308..06cc35f7d 100755 --- a/cloudAPI/views.py +++ b/cloudAPI/views.py @@ -326,7 +326,7 @@ def access(request): if admin.api == 0: return cm.ajaxPre(0, 'API Access Disabled.') - if token == admin.token: + if token == admin.token.lstrip('Basic '): request.session['userID'] = admin.pk from django.shortcuts import redirect from baseTemplate.views import renderBase From 3531f5577b0208024c2c30213f9d548407d61851 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 8 Apr 2020 18:10:01 +0500 Subject: [PATCH 012/240] add remote access --- cloudAPI/views.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/cloudAPI/views.py b/cloudAPI/views.py index 06cc35f7d..d3d552dc3 100755 --- a/cloudAPI/views.py +++ b/cloudAPI/views.py @@ -4,8 +4,8 @@ from .cloudManager import CloudManager import json from loginSystem.models import Administrator -from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging from django.views.decorators.csrf import csrf_exempt +from django.shortcuts import HttpResponse @csrf_exempt def router(request): @@ -314,25 +314,21 @@ def router(request): @csrf_exempt def access(request): try: - data = json.loads(request.body) - serverUserName = request.GET.get('serverUserName') token = request.GET.get('token') admin = Administrator.objects.get(userName=serverUserName) - cm = CloudManager(data, admin) - if admin.api == 0: - return cm.ajaxPre(0, 'API Access Disabled.') + return HttpResponse('API Access Disabled.') - if token == admin.token.lstrip('Basic '): + if token == admin.token.lstrip('Basic ').rstrip('='): request.session['userID'] = admin.pk from django.shortcuts import redirect from baseTemplate.views import renderBase return redirect(renderBase) else: - return cm.ajaxPre(0, 'Unauthorized access.') + return HttpResponse('Unauthorized access.') except BaseException as msg: cm = CloudManager(None) From 939b6fbc2753f4ffdf6d5ee5055d5a2987329766 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 9 Apr 2020 22:53:57 +0500 Subject: [PATCH 013/240] add cyberpanel repo --- cyberpanel.sh | 11 ++---- install/CyberPanel.repo | 5 +++ install/install.py | 79 ----------------------------------------- plogical/test.py | 9 +++++ 4 files changed, 17 insertions(+), 87 deletions(-) create mode 100644 install/CyberPanel.repo diff --git a/cyberpanel.sh b/cyberpanel.sh index 87fad78fe..12917c7f0 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -398,6 +398,7 @@ fi install_required() { +curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo if [[ $SERVER_COUNTRY == "CN" ]] ; then mkdir /root/.config mkdir /root/.config/pip @@ -425,14 +426,13 @@ if [[ $SERVER_OS == "CentOS" ]] ; then yum autoremove epel-release -y rm -f /etc/yum.repos.d/epel.repo rm -f /etc/yum.repos.d/epel.repo.rpmsave - yum install epel-release -y if [[ $CENTOS_8 == "False" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc python-devel libattr-devel xz-devel gpgme-devel mariadb-devel curl-devel python-pip git socat + yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat check_return fi if [[ $CENTOS_8 == "True" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat + yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat check_return dnf --enablerepo=PowerTools install gpgme-devel -y check_return @@ -442,11 +442,6 @@ if [[ $DEV == "ON" ]] ; then if [[ $CENTOS_8 == "False" ]] ; then yum -y install yum-utils yum -y groupinstall development - if [[ $SERVER_COUNTRY == "CN" ]] ; then - wget -O /etc/yum.repos.d/ius.repo https://$DOWNLOAD_SERVER/ius/ius.repo - else - yum -y install https://centos7.iuscommunity.org/ius-release.rpm - fi yum -y install python36u python36u-pip python36u-devel check_return fi diff --git a/install/CyberPanel.repo b/install/CyberPanel.repo new file mode 100644 index 000000000..2f6f1f5e8 --- /dev/null +++ b/install/CyberPanel.repo @@ -0,0 +1,5 @@ +[CyberPanel] +name=CyberPanel +baseurl=https://repo.cyberpanel.net/ +gpgkey=https://repo.cyberpanel.net/RPM-GPG-KEY-cyberpanel +gpgcheck=1 \ No newline at end of file diff --git a/install/install.py b/install/install.py index 73ac7e387..285150620 100755 --- a/install/install.py +++ b/install/install.py @@ -304,10 +304,6 @@ class preFlightsChecks: except BaseException as msg: logging.InstallLog.writeToFile("[ERROR] setup_account_cyberpanel. " + str(msg)) - def yum_update(self): - command = 'yum update -y' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - def installCyberPanelRepo(self): self.stdOut("Install Cyberpanel repo") @@ -333,60 +329,6 @@ class preFlightsChecks: command = 'rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm' preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - def enableEPELRepo(self): - command = 'yum -y install epel-release' - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - def install_pip(self): - self.stdOut("Install pip") - if self.distro == ubuntu: - command = "apt-get -y install python-pip" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - elif self.distro == centos: - command = "yum -y install python-pip" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - - def install_python_dev(self): - self.stdOut("Install python development environment") - - if self.distro == centos: - command = "yum -y install python-devel" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - elif self.distro == ubuntu: - command = "apt-get -y install python-dev" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - - - def install_gcc(self): - self.stdOut("Install gcc") - - if self.distro == centos: - command = "yum -y install gcc" - else: - command = "apt-get -y install gcc" - - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - def install_python_setup_tools(self): - command = "yum -y install python-setuptools" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - def install_python_mysql_library(self): - self.stdOut("Install MySQL python library") - - if self.distro == centos: - command = "yum install mariadb-devel gcc python36u-devel -y" - else: - command = "apt-get -y install libmysqlclient-dev" - - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - if self.distro == ubuntu: - command = "pip install MySQL-python" - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - def fix_selinux_issue(self): try: cmd = [] @@ -415,24 +357,11 @@ class preFlightsChecks: preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - def installGit(self): - if os.path.exists("/etc/lsb-release"): - command = 'apt -y install git' - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - else: - command = 'yum -y install http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = 'yum install git -y' - preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - def download_install_CyberPanel(self, mysqlPassword, mysql): ## os.chdir(self.path) - self.installGit() - os.chdir('/usr/local') command = "git clone https://github.com/usmannasir/cyberpanel" @@ -2236,9 +2165,6 @@ vmail command = 'systemctl enable redis' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - - def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') parser.add_argument('publicip', help='Please enter public IP for your VPS or dedicated server.') @@ -2307,10 +2233,6 @@ def main(): checks.checkPythonVersion() checks.setup_account_cyberpanel() checks.installCyberPanelRepo() - #checks.install_gcc() - if distro == centos: - checks.install_python_setup_tools() - #checks.install_python_mysql_library() import installCyberPanel @@ -2348,7 +2270,6 @@ def main(): checks.setup_cron() checks.installRestic() checks.installAcme() - # checks.installdnsPython() ## Install and Configure OpenDKIM. diff --git a/plogical/test.py b/plogical/test.py index e69de29bb..012282b14 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -0,0 +1,9 @@ +import os +import subprocess +rootdir = '/home/repo.cyberpanel.net/public_html/epel/Packages' + +for subdir, dirs, files in os.walk(rootdir): + for file in files: + if file.endswith('.rpm'): + command = 'rpm --resign %s/%s' % (subdir, file) + subprocess.call(command, shell=True) \ No newline at end of file From a89d038d79fd6fc94550d88aa2cee770c252da64 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 9 Apr 2020 22:54:49 +0500 Subject: [PATCH 014/240] add cyberpanel repo --- cyberpanel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 12917c7f0..dbca0e5a3 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -398,7 +398,7 @@ fi install_required() { -curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo +curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo if [[ $SERVER_COUNTRY == "CN" ]] ; then mkdir /root/.config mkdir /root/.config/pip From 5e63e839a212e0ae3d222925d6686deac12913cd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 13:35:27 +0500 Subject: [PATCH 015/240] add further missing packages --- cyberpanel.sh | 4 ++-- install/installCyberPanel.py | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index dbca0e5a3..02108bd87 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -428,11 +428,11 @@ if [[ $SERVER_OS == "CentOS" ]] ; then rm -f /etc/yum.repos.d/epel.repo.rpmsave if [[ $CENTOS_8 == "False" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat + yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel check_return fi if [[ $CENTOS_8 == "True" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat + yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat mariadb-devel openssl-devel MariaDB-shared mariadb-devel check_return dnf --enablerepo=PowerTools install gpgme-devel -y check_return diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 46e1734bf..d9a92a084 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -625,8 +625,6 @@ def Main(cwd, mysql, distro, ent, serial = None, port = "8090", ftp = None, dns if ent == 0: installer.fix_ols_configs() - - installer.setup_mariadb_repo() installer.installMySQL(mysql) installer.changeMYSQLRootPassword() #installer.changeMYSQLRootPasswordCyberPanel(mysql) From 923f7c1d40a201854c81dce40e629c2fd76a2947 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 16:50:11 +0500 Subject: [PATCH 016/240] push more packages to repo --- cyberpanel.sh | 2 +- install/install.py | 32 +++----------------------------- install/installCyberPanel.py | 29 +---------------------------- plogical/applicationInstaller.py | 2 -- plogical/test.py | 9 --------- plogical/upgrade.py | 2 -- 6 files changed, 5 insertions(+), 71 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 02108bd87..7ff51b0c8 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1305,7 +1305,7 @@ fi fi #fix php.ini & issue -clear +#clear echo "###################################################################" echo " CyberPanel Successfully Installed " echo " " diff --git a/install/install.py b/install/install.py index 285150620..5dd6625f4 100755 --- a/install/install.py +++ b/install/install.py @@ -677,24 +677,9 @@ class preFlightsChecks: def install_postfix_davecot(self): self.stdOut("Install dovecot - first remove postfix") - if self.distro == centos: - path = '/etc/yum.repos.d/dovecot.repo' - content = """[dovecot-2.3-latest] -name=Dovecot 2.3 CentOS $releasever - $basearch -baseurl=http://repo.dovecot.org/ce-2.3-latest/centos/$releasever/RPMS/$basearch -gpgkey=https://repo.dovecot.org/DOVECOT-REPO-GPG -gpgcheck=1 -enabled=1""" - writeToFile = open(path, 'w') - writeToFile.write(content) - writeToFile.close() - try: if self.distro == centos: - command = 'yum -y install http://cyberpanel.sh/gf-release-latest.gf.el7.noarch.rpm' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - command = 'yum remove postfix -y' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) elif self.distro == ubuntu: @@ -706,7 +691,7 @@ enabled=1""" self.stdOut("Install dovecot - do the install") if self.distro == centos: - command = 'yum install --enablerepo=gf-plus -y postfix3 postfix3-ldap postfix3-mysql postfix3-pcre' + command = 'yum install --enablerepo=CyberPanel -y postfix3 postfix3-ldap postfix3-mysql postfix3-pcre' elif self.distro == cent8: command = 'dnf install postfix postfix-mysql -y' else: @@ -735,7 +720,7 @@ enabled=1""" ## if self.distro == centos or self.distro == cent8: - command = 'yum -y install dovecot dovecot-mysql' + command = 'yum --enablerepo=CyberPanel -y install dovecot dovecot-mysql' else: command = 'apt-get -y install dovecot-mysql' @@ -2050,14 +2035,7 @@ milter_default_action = accept CentOSPath = '/etc/redhat-release' if os.path.exists(CentOSPath): - - command = 'yum install yum-utils -y' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = 'yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = 'yum install restic -y' + command = 'yum --enablerepo=CyberPanel install restic -y' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) else: command = 'apt-get update -y' @@ -2066,10 +2044,6 @@ milter_default_action = accept command = 'apt-get install restic -y' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - cronTab = '/etc/crontab' - - data = open(cronTab, 'r').read() - except: pass diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index d9a92a084..dc263b9a0 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -207,28 +207,6 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - def setup_mariadb_repo(self): - try: - - if self.distro == ubuntu: - # Only needed if the repo is broken or we need the latest version. - # command = "apt-get -y install software-properties-common" - # command = "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8" - # command = "add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'" - return - - InstallCyberPanel.stdOut("Setting up MariaDB Repo..", 1) - - os.chdir(self.cwd) - shutil.copy("mysql/MariaDB.repo","/etc/yum.repos.d/MariaDB.repo") - - InstallCyberPanel.stdOut("MariaDB repo set!", 1) - - - except BaseException as msg: - logging.InstallLog.writeToFile('[ERROR] ' + str(msg) + " [setup_mariadb_repo]") - return 0 - def installMySQL(self, mysql): ############## Install mariadb ###################### @@ -236,7 +214,7 @@ class InstallCyberPanel: if self.distro == ubuntu: command = "apt-get -y install mariadb-server" else: - command = 'yum -y install mariadb-server' + command = 'yum --enablerepo=CyberPanel -y install mariadb-server' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) @@ -500,11 +478,6 @@ class InstallCyberPanel: # ". This may need to be fixed manually as 'echo \"nameserver 8.8.8.8\"> " # "/etc/resolv.conf'", 1, 1, os.EX_OSERR) - if self.distro == centos: - command = 'curl -o /etc/yum.repos.d/powerdns-auth-42.repo ' \ - 'https://repo.powerdns.com/repo-files/centos-auth-42.repo' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - if self.distro == cent8: command = 'dnf config-manager --set-enabled PowerTools' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index 18cc8c125..57b3909ed 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -166,8 +166,6 @@ class ApplicationInstaller(multi.Thread): command = 'apt -y install git' ProcessUtilities.executioner(command) else: - command = 'yum -y install http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm' - ProcessUtilities.executioner(command) command = 'yum install git -y' ProcessUtilities.executioner(command) diff --git a/plogical/test.py b/plogical/test.py index 012282b14..e69de29bb 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -1,9 +0,0 @@ -import os -import subprocess -rootdir = '/home/repo.cyberpanel.net/public_html/epel/Packages' - -for subdir, dirs, files in os.walk(rootdir): - for file in files: - if file.endswith('.rpm'): - command = 'rpm --resign %s/%s' % (subdir, file) - subprocess.call(command, shell=True) \ No newline at end of file diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 64653f606..3f965f126 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1282,8 +1282,6 @@ class Upgrade: command = 'apt -y install git' Upgrade.executioner(command, 'installGit', 0) else: - command = 'sudo yum -y install http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm' - Upgrade.executioner(command, 'installGit', 0) command = 'sudo yum install git -y' Upgrade.executioner(command, 'installGit', 0) From a5d957c5b064f90752291513c4961d4f8f0e7d90 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 22:34:54 +0500 Subject: [PATCH 017/240] change source of pip packages --- cyberpanel.sh | 10 +++++----- plogical/upgrade.py | 2 -- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 7ff51b0c8..e58438c0c 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1082,9 +1082,11 @@ if [[ $DEV == "ON" ]] ; then cd /usr/local/ virtualenv -p /usr/bin/python3 CyberPanel source /usr/local/CyberPanel/bin/activate - wget -O requirements.txt https://$GIT_CONTENT_URL/${BRANCH_NAME}/requirments.txt + wget -O /usr/local/cyberpanel-pip.zip https://repo.cyberpanel.net/cyberpanel-pip.zip check_return - pip3.6 install --ignore-installed -r requirements.txt + unzip /usr/local/cyberpanel-pip.zip -d /usr/local + check_return + pip3.6 install /usr/local/pip-packs/* check_return cd - fi @@ -1176,9 +1178,7 @@ EOF virtualenv -p /usr/bin/python3 /usr/local/CyberCP source /usr/local/CyberCP/bin/activate -wget -O requirements.txt https://$GIT_CONTENT_URL/${BRANCH_NAME}/requirments.txt -check_return -pip3.6 install --ignore-installed -r requirements.txt +pip3.6 install /usr/local/pip-packs/* check_return systemctl restart lscpd fi diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 3f965f126..2a3f2a244 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1987,8 +1987,6 @@ failovermethod=priority CentOSPath = '/etc/redhat-release' if os.path.exists(CentOSPath): - command = 'yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo' - Upgrade.executioner(command, 'Add restic repo.') command = 'yum install restic -y' Upgrade.executioner(command, 'Install Restic') From d23c707a3a0ab04beff66a1df1951a852ddff11b Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 22:41:53 +0500 Subject: [PATCH 018/240] push packs to cdn --- cyberpanel.sh | 2 +- install/CyberPanel.repo | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index e58438c0c..257216932 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1082,7 +1082,7 @@ if [[ $DEV == "ON" ]] ; then cd /usr/local/ virtualenv -p /usr/bin/python3 CyberPanel source /usr/local/CyberPanel/bin/activate - wget -O /usr/local/cyberpanel-pip.zip https://repo.cyberpanel.net/cyberpanel-pip.zip + wget -O /usr/local/cyberpanel-pip.zip https://cyberpanelrepo.b-cdn.net//cyberpanel-pip.zip check_return unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return diff --git a/install/CyberPanel.repo b/install/CyberPanel.repo index 2f6f1f5e8..b8b5d6ad0 100644 --- a/install/CyberPanel.repo +++ b/install/CyberPanel.repo @@ -1,5 +1,5 @@ [CyberPanel] name=CyberPanel -baseurl=https://repo.cyberpanel.net/ -gpgkey=https://repo.cyberpanel.net/RPM-GPG-KEY-cyberpanel +baseurl=https://cyberpanelrepo.b-cdn.net/ +gpgkey=https://cyberpanelrepo.b-cdn.net/RPM-GPG-KEY-cyberpanel gpgcheck=1 \ No newline at end of file From 57365beed1e0898d9c29534a924e0a3e51cc7a3a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 22:50:49 +0500 Subject: [PATCH 019/240] move further pip resources --- cyberpanel.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 257216932..76db01e52 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1037,10 +1037,7 @@ if [[ $debug == "0" ]] ; then fi if [[ $debug == "1" ]] ; then - wget -O requirements.txt https://$GIT_CONTENT_URL/${BRANCH_NAME}/requirments.txt - check_return - /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirements.txt - rm -f requirements.txt + /usr/local/CyberPanel/bin/pip3 install /usr/local/pip-packs/* if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable From c528695b33f6fcb6bacd11deeafba2ad86d76cea Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 10 Apr 2020 22:54:44 +0500 Subject: [PATCH 020/240] --ignore-installed --- cyberpanel.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 76db01e52..6715b95db 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1037,7 +1037,7 @@ if [[ $debug == "0" ]] ; then fi if [[ $debug == "1" ]] ; then - /usr/local/CyberPanel/bin/pip3 install /usr/local/pip-packs/* + /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable @@ -1083,7 +1083,7 @@ if [[ $DEV == "ON" ]] ; then check_return unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return - pip3.6 install /usr/local/pip-packs/* + pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return cd - fi @@ -1175,7 +1175,7 @@ EOF virtualenv -p /usr/bin/python3 /usr/local/CyberCP source /usr/local/CyberCP/bin/activate -pip3.6 install /usr/local/pip-packs/* +pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return systemctl restart lscpd fi From d00ed2fda7180ce14ca0f2467c94d395d9f5fe5d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 11:31:13 +0500 Subject: [PATCH 021/240] remove repos during upgrade --- cyberpanel.sh | 2 +- cyberpanel_upgrade.sh | 17 ++++ install/CyberPanel.repo | 4 +- plogical/upgrade.py | 198 +++++++++++++--------------------------- 4 files changed, 85 insertions(+), 136 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 6715b95db..f5182bffe 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1079,7 +1079,7 @@ if [[ $DEV == "ON" ]] ; then cd /usr/local/ virtualenv -p /usr/bin/python3 CyberPanel source /usr/local/CyberPanel/bin/activate - wget -O /usr/local/cyberpanel-pip.zip https://cyberpanelrepo.b-cdn.net//cyberpanel-pip.zip + wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip check_return unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 12bf21756..240c72475 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -11,6 +11,23 @@ GIT_URL="github.com/usmannasir/cyberpanel" GIT_CONTENT_URL="raw.githubusercontent.com/usmannasir/cyberpanel" SERVER_COUNTRY="unknow" SERVER_COUNTRY=$(curl --silent --max-time 5 https://cyberpanel.sh/?country) + +### Update and remove not needed repos + +curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo +rm -f /etc/yum.repos.d/ius-archive.repo +rm -f /etc/yum.repos.d/copart-restic-epel-7.repo +rm -f /etc/yum.repos.d/dovecot.repo +rm -f /etc/yum.repos.d/epel.repo +rm -f /etc/yum.repos.d/epel-testing.repo +rm -f /etc/yum.repos.d/frank.repo +rm -f /etc/yum.repos.d/ius.repo +rm -f /etc/yum.repos.d/ius-testing.repo +rm -f /etc/yum.repos.d/MariaDB.repo +rm -f /etc/yum.repos.d/lux.repo + +## + if [[ ${#SERVER_COUNTRY} == "2" ]] || [[ ${#SERVER_COUNTRY} == "6" ]] ; then echo -e "\nChecking server..." else diff --git a/install/CyberPanel.repo b/install/CyberPanel.repo index b8b5d6ad0..4dc23d316 100644 --- a/install/CyberPanel.repo +++ b/install/CyberPanel.repo @@ -1,5 +1,5 @@ [CyberPanel] name=CyberPanel -baseurl=https://cyberpanelrepo.b-cdn.net/ -gpgkey=https://cyberpanelrepo.b-cdn.net/RPM-GPG-KEY-cyberpanel +baseurl=https://rep.cyberpanel.net/ +gpgkey=https://rep.cyberpanel.net/RPM-GPG-KEY-cyberpanel gpgcheck=1 \ No newline at end of file diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 2a3f2a244..bf7a5342d 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -19,6 +19,8 @@ BUILD = 1 class Upgrade: logPath = "/usr/local/lscp/logs/upgradeLog" cdn = 'cdn.cyberpanel.sh' + installedOutput = '' + CentOSPath = '/etc/redhat-release' @staticmethod def stdOut(message, do_exit=0): @@ -123,7 +125,6 @@ class Upgrade: except BaseException as msg: Upgrade.stdOut(str(msg) + " [mountTemp]", 0) - @staticmethod def dockerUsers(): ### Docker User/group @@ -408,25 +409,6 @@ class Upgrade: Upgrade.stdOut(str(msg) + ' [downloadLink]') os._exit(0) - @staticmethod - def fileManager(): - ## Copy File manager files - - command = "rm -rf /usr/local/lsws/Example/html/FileManager" - Upgrade.executioner(command, 'Remove old Filemanager', 0) - - if os.path.exists('/usr/local/lsws/bin/openlitespeed'): - command = "mv /usr/local/CyberCP/install/FileManager /usr/local/lsws/Example/html" - Upgrade.executioner(command, 'Setup new Filemanager', 0) - else: - command = "mv /usr/local/CyberCP/install/FileManager /usr/local/lsws" - Upgrade.executioner(command, 'Setup new Filemanager', 0) - - ## - - command = "chmod -R 777 /usr/local/lsws/Example/html/FileManager" - Upgrade.executioner(command, 'Filemanager permissions change', 0) - @staticmethod def setupCLI(): try: @@ -1275,27 +1257,11 @@ class Upgrade: except: pass - @staticmethod - def installGit(): - try: - if os.path.exists("/etc/lsb-release"): - command = 'apt -y install git' - Upgrade.executioner(command, 'installGit', 0) - else: - - command = 'sudo yum install git -y' - Upgrade.executioner(command, 'installGit', 0) - - except BaseException as msg: - pass - @staticmethod def downloadAndUpgrade(versionNumbring, branch): try: ## Download latest version. - Upgrade.installGit() - ## Backup settings file. Upgrade.stdOut("Backing up settings file.") @@ -1722,18 +1688,22 @@ CSRF_COOKIE_SECURE = True @staticmethod def installPHP73(): try: - command = 'yum install -y lsphp73 lsphp73-json lsphp73-xmlrpc lsphp73-xml lsphp73-tidy lsphp73-soap lsphp73-snmp ' \ - 'lsphp73-recode lsphp73-pspell lsphp73-process lsphp73-pgsql lsphp73-pear lsphp73-pdo lsphp73-opcache ' \ - 'lsphp73-odbc lsphp73-mysqlnd lsphp73-mcrypt lsphp73-mbstring lsphp73-ldap lsphp73-intl lsphp73-imap ' \ - 'lsphp73-gmp lsphp73-gd lsphp73-enchant lsphp73-dba lsphp73-common lsphp73-bcmath' - Upgrade.executioner(command, 'Install PHP 73, 0') - command = 'yum install -y lsphp74 lsphp74-json lsphp74-xmlrpc lsphp74-xml lsphp74-tidy lsphp74-soap lsphp74-snmp ' \ - 'lsphp74-recode lsphp74-pspell lsphp74-process lsphp74-pgsql lsphp74-pear lsphp74-pdo lsphp74-opcache ' \ - 'lsphp74-odbc lsphp74-mysqlnd lsphp74-mcrypt lsphp74-mbstring lsphp74-ldap lsphp74-intl lsphp74-imap ' \ - 'lsphp74-gmp lsphp74-gd lsphp74-enchant lsphp74-dba lsphp74-common lsphp74-bcmath' + if Upgrade.installedOutput.find('lsphp73') == -1: + command = 'yum install -y lsphp73 lsphp73-json lsphp73-xmlrpc lsphp73-xml lsphp73-tidy lsphp73-soap lsphp73-snmp ' \ + 'lsphp73-recode lsphp73-pspell lsphp73-process lsphp73-pgsql lsphp73-pear lsphp73-pdo lsphp73-opcache ' \ + 'lsphp73-odbc lsphp73-mysqlnd lsphp73-mcrypt lsphp73-mbstring lsphp73-ldap lsphp73-intl lsphp73-imap ' \ + 'lsphp73-gmp lsphp73-gd lsphp73-enchant lsphp73-dba lsphp73-common lsphp73-bcmath' + Upgrade.executioner(command, 'Install PHP 73, 0') + + if Upgrade.installedOutput.find('lsphp74') == -1: + command = 'yum install -y lsphp74 lsphp74-json lsphp74-xmlrpc lsphp74-xml lsphp74-tidy lsphp74-soap lsphp74-snmp ' \ + 'lsphp74-recode lsphp74-pspell lsphp74-process lsphp74-pgsql lsphp74-pear lsphp74-pdo lsphp74-opcache ' \ + 'lsphp74-odbc lsphp74-mysqlnd lsphp74-mcrypt lsphp74-mbstring lsphp74-ldap lsphp74-intl lsphp74-imap ' \ + 'lsphp74-gmp lsphp74-gd lsphp74-enchant lsphp74-dba lsphp74-common lsphp74-bcmath' + + Upgrade.executioner(command, 'Install PHP 74, 0') - Upgrade.executioner(command, 'Install PHP 74, 0') except: command = 'DEBIAN_FRONTEND=noninteractive apt-get -y install ' \ 'lsphp7? lsphp7?-common lsphp7?-curl lsphp7?-dev lsphp7?-imap lsphp7?-intl lsphp7?-json ' \ @@ -1755,11 +1725,6 @@ CSRF_COOKIE_SECURE = True command = "mkdir -p /usr/local/lscp/cyberpanel/logs" Upgrade.executioner(command, 0) - @staticmethod - def upgradePDNS(): - command = "yum install epel-release && curl -o /etc/yum.repos.d/powerdns-auth-42.repo https://repo.powerdns.com/repo-files/centos-auth-42.repo && yum --enablerepo=epel install pdns" - subprocess.call(command, shell=True) - @staticmethod def upgradeDovecot(): try: @@ -1767,40 +1732,28 @@ CSRF_COOKIE_SECURE = True CentOSPath = '/etc/redhat-release' if os.path.exists(CentOSPath): - path = '/etc/yum.repos.d/dovecot.repo' - content = """[dovecot-2.3-latest] -name=Dovecot 2.3 CentOS $releasever - $basearch -baseurl=http://repo.dovecot.org/ce-2.3-latest/centos/$releasever/RPMS/$basearch -gpgkey=https://repo.dovecot.org/DOVECOT-REPO-GPG -gpgcheck=1 -enabled=1""" - writeToFile = open(path, 'w') - writeToFile.write(content) - writeToFile.close() - command = "yum makecache -y" - Upgrade.executioner(command, 0) + if Upgrade.installedOutput.find('2:2.3.10-2') == -1: + command = "yum makecache -y" + Upgrade.executioner(command, 0) - command = "yum update -y" - Upgrade.executioner(command, 0) + command = "yum update -y" + Upgrade.executioner(command, 0) - ## Remove Default Password Scheme + ## Remove Default Password Scheme - path = '/etc/dovecot/dovecot-sql.conf.ext' + path = '/etc/dovecot/dovecot-sql.conf.ext' - data = open(path, 'r').readlines() + data = open(path, 'r').readlines() - updatePasswords = 1 + writeToFile = open(path, 'w') + for items in data: + if items.find('default_pass_scheme') > -1: + continue + else: + writeToFile.writelines(items) - writeToFile = open(path, 'w') - for items in data: - if items.find('default_pass_scheme') > -1: - updatePasswords = 0 - continue - else: - writeToFile.writelines(items) - - writeToFile.close() + writeToFile.close() import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") @@ -1819,68 +1772,44 @@ enabled=1""" Upgrade.executioner(command, 0) - ### Postfix Upgrade - try: - shutil.copy('/etc/postfix/master.cf', '/etc/master.cf') - except: - pass + if Upgrade.installedOutput.find('2:3.4.7-1.gf.el7') == -1: + try: + shutil.copy('/etc/postfix/master.cf', '/etc/master.cf') + except: + pass - try: - shutil.copy('/etc/postfix/main.cf', '/etc/main.cf') - except: - pass + try: + shutil.copy('/etc/postfix/main.cf', '/etc/main.cf') + except: + pass - gf = '/etc/yum.repos.d/gf.repo' - gfContent = """[gf] -name=Ghettoforge packages that won't overwrite core distro packages. -mirrorlist=http://mirrorlist.ghettoforge.org/el/7/gf/$basearch/mirrorlist -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-gf.el7 -failovermethod=priority -[gf-plus] -name=Ghettoforge packages that will overwrite core distro packages. -mirrorlist=http://mirrorlist.ghettoforge.org/el/7/plus/$basearch/mirrorlist -# Please read http://ghettoforge.org/index.php/Usage *before* enabling this repository! -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-gf.el7 -failovermethod=priority -""" - writeToFile = open(gf, 'w') - writeToFile.write(gfContent) - writeToFile.close() + command = 'yum remove postfix -y' + Upgrade.executioner(command, 0) - command = 'yum remove postfix -y' - Upgrade.executioner(command, 0) + command = 'yum clean all' + Upgrade.executioner(command, 0) - command = 'rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm' - Upgrade.executioner(command, 0) + command = 'yum makecache fast' + Upgrade.executioner(command, 0) - command = 'yum clean all' - Upgrade.executioner(command, 0) + command = 'yum install --enablerepo=CyberPanel -y postfix3 postfix3-mysql' + Upgrade.executioner(command, 0) - command = 'yum makecache fast' - Upgrade.executioner(command, 0) + try: + shutil.move('/etc/master.cf', '/etc/postfix/master.cf') + except: + pass + try: + shutil.move('/etc/main.cf', '/etc/postfix/main.cf') + except: + pass - command = 'yum install -y postfix3 postfix3-mysql' - Upgrade.executioner(command, 0) - - try: - shutil.move('/etc/master.cf', '/etc/postfix/master.cf') - except: - pass - try: - shutil.move('/etc/main.cf', '/etc/postfix/main.cf') - except: - pass - - command = 'systemctl restart postfix' - Upgrade.executioner(command, 0) + command = 'systemctl restart postfix' + Upgrade.executioner(command, 0) else: command = 'curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import' @@ -1987,9 +1916,9 @@ failovermethod=priority CentOSPath = '/etc/redhat-release' if os.path.exists(CentOSPath): - - command = 'yum install restic -y' - Upgrade.executioner(command, 'Install Restic') + if Upgrade.installedOutput.find('restic') == -1: + command = 'yum install restic -y' + Upgrade.executioner(command, 'Install Restic') else: command = 'apt-get update -y' Upgrade.executioner(command, 'Install Restic') @@ -1997,7 +1926,6 @@ failovermethod=priority command = 'apt-get install restic -y' Upgrade.executioner(command, 'Install Restic') - @staticmethod def UpdateMaxSSLCons(): command = "sed -i 's|2000|10000|g' /usr/local/lsws/conf/httpd_config.xml" @@ -2134,6 +2062,10 @@ vmail # Upgrade.stdOut("Upgrades are currently disabled") # return 0 + if os.path.exists(Upgrade.CentOSPath): + command = 'yum list installed' + Upgrade.installedOutput = subprocess.call(shlex.split(command)) + command = 'systemctl stop cpssh' Upgrade.executioner(command, 'fix csf if there', 0) From c443e22674537b8c78ff1291542352ddd3360d23 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 12:11:46 +0500 Subject: [PATCH 022/240] use own repo during upgrade for pip --- cyberpanel_upgrade.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 240c72475..376186a6a 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -210,9 +210,14 @@ rm -rf /usr/local/CyberPanel virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel check_return rm -f requirments.txt -wget -O requirements.txt https://$GIT_CONTENT_URL/${BRANCH_NAME}/requirments.txt +wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip +check_return +unzip /usr/local/cyberpanel-pip.zip -d /usr/local +check_return . /usr/local/CyberPanel/bin/activate check_return +pip3.6 install --ignore-installed /usr/local/pip-packs/* +check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberPanel/bin/activate @@ -243,8 +248,6 @@ fi check_return virtualenv -p /usr/bin/python3 /usr/local/CyberCP check_return -wget -O requirements.txt https://$GIT_CONTENT_URL/${BRANCH_NAME}/requirments.txt - if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate check_return @@ -253,7 +256,7 @@ if [ $SERVER_OS = "Ubuntu" ] ; then else source /usr/local/CyberCP/bin/activate check_return - pip3.6 install --ignore-installed -r requirements.txt + pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return fi From 588fb1dd3ce023f165ebeab72ab1513bb99d703f Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 12:18:38 +0500 Subject: [PATCH 023/240] bug fix: cp upgrade.sh --- cyberpanel_upgrade.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 376186a6a..6ed0f5753 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -25,6 +25,11 @@ rm -f /etc/yum.repos.d/ius.repo rm -f /etc/yum.repos.d/ius-testing.repo rm -f /etc/yum.repos.d/MariaDB.repo rm -f /etc/yum.repos.d/lux.repo +yum clean all +yum update -y +yum autoremove epel-release -y +rm -f /etc/yum.repos.d/epel.repo +rm -f /etc/yum.repos.d/epel.repo.rpmsave ## @@ -183,7 +188,6 @@ fi if [ $SERVER_OS = "CentOS7" ] ; then yum -y install yum-utils yum -y groupinstall development - yum -y install https://centos7.iuscommunity.org/ius-release.rpm yum -y install python36u python36u-pip python36u-devel elif [ $SERVER_OS = "CentOS8" ] ; then yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar @@ -216,8 +220,6 @@ unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return . /usr/local/CyberPanel/bin/activate check_return -pip3.6 install --ignore-installed /usr/local/pip-packs/* -check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberPanel/bin/activate @@ -227,7 +229,7 @@ if [ $SERVER_OS = "Ubuntu" ] ; then else source /usr/local/CyberPanel/bin/activate check_return - pip3.6 install --ignore-installed -r requirements.txt + pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return fi From c2c23c72b6bf3a863ade632ae7bf27f280d371c3 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 12:29:21 +0500 Subject: [PATCH 024/240] bug fix: upgrade --- plogical/upgrade.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index bf7a5342d..c7de6761b 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -2064,7 +2064,7 @@ vmail if os.path.exists(Upgrade.CentOSPath): command = 'yum list installed' - Upgrade.installedOutput = subprocess.call(shlex.split(command)) + Upgrade.installedOutput = subprocess.check_output(shlex.split(command)) command = 'systemctl stop cpssh' Upgrade.executioner(command, 'fix csf if there', 0) From 25ed0cc85870db906b6147f2d5e15d8ea733e5fa Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 12:37:12 +0500 Subject: [PATCH 025/240] bug fix: upgrade --- cyberpanel_upgrade.sh | 1 + plogical/upgrade.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 6ed0f5753..b214bdde3 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -216,6 +216,7 @@ check_return rm -f requirments.txt wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip check_return +rm -rf /usr/local/pip-packs/ unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return . /usr/local/CyberPanel/bin/activate diff --git a/plogical/upgrade.py b/plogical/upgrade.py index c7de6761b..aee05c030 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -2064,7 +2064,7 @@ vmail if os.path.exists(Upgrade.CentOSPath): command = 'yum list installed' - Upgrade.installedOutput = subprocess.check_output(shlex.split(command)) + Upgrade.installedOutput = subprocess.check_output(shlex.split(command)).decode() command = 'systemctl stop cpssh' Upgrade.executioner(command, 'fix csf if there', 0) From 1e3fddbed7fdfef3ee28879ac634fa06459e1157 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 12:44:40 +0500 Subject: [PATCH 026/240] remove gf and pdns repos --- cyberpanel_upgrade.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index b214bdde3..3eae6f257 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -25,6 +25,8 @@ rm -f /etc/yum.repos.d/ius.repo rm -f /etc/yum.repos.d/ius-testing.repo rm -f /etc/yum.repos.d/MariaDB.repo rm -f /etc/yum.repos.d/lux.repo +rm -f /etc/yum.repos.d/gf.repo +rm -f /etc/yum.repos.d/powerdns-auth-42.repo yum clean all yum update -y yum autoremove epel-release -y From 4a15bcab80a0a13b68603ad5cea9a9bd2083a95b Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 15:06:02 +0500 Subject: [PATCH 027/240] test --- cyberpanel_upgrade.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 3eae6f257..611bbdc56 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -33,6 +33,7 @@ yum autoremove epel-release -y rm -f /etc/yum.repos.d/epel.repo rm -f /etc/yum.repos.d/epel.repo.rpmsave + ## if [[ ${#SERVER_COUNTRY} == "2" ]] || [[ ${#SERVER_COUNTRY} == "6" ]] ; then From 9e93da5839d44bedb6de3f61b6a8cc6db2273fdf Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 15:31:01 +0500 Subject: [PATCH 028/240] skip clone --- cyberpanel_upgrade.sh | 2 +- plogical/upgrade.py | 51 +++++++++++++++++-------------------------- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 611bbdc56..e83db1620 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -191,7 +191,7 @@ fi if [ $SERVER_OS = "CentOS7" ] ; then yum -y install yum-utils yum -y groupinstall development - yum -y install python36u python36u-pip python36u-devel + yum -y install python36u python36u-pip python36u-devel openssl-devel MariaDB-shared mariadb-devel elif [ $SERVER_OS = "CentOS8" ] ; then yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar dnf --enablerepo=PowerTools install gpgme-devel -y diff --git a/plogical/upgrade.py b/plogical/upgrade.py index aee05c030..e668d8b27 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1272,37 +1272,35 @@ class Upgrade: ## Extract Latest files - os.chdir('/usr/local') + os.chdir('/usr/local/CyberCP') - if os.path.exists('cyberpanel'): - shutil.rmtree('cyberpanel') + command = 'git config --global user.email "support@cyberpanel.met"' + Upgrade.executioner(command, command, 1) - ### check if imunify exists + command = 'git config --global user.name "CyberPanel"' + Upgrade.executioner(command, command, 1) - imunifyPublic = '/usr/local/CyberCP/public/imunify' - imunifyPublicBackup = '/usr/local' + command = 'git status' + currentBranch = subprocess.check_output(shlex.split(command)).decode() - try: + if currentBranch.find('On branch %s' % (branch)) > -1: - if os.path.exists(imunifyPublic): - shutil.move(imunifyPublic, imunifyPublicBackup) + command = 'git stash' + Upgrade.executioner(command, command, 1) - except: - pass + command = 'git pull' + Upgrade.executioner(command, command, 1) - if os.path.exists('CyberCP'): - shutil.rmtree('CyberCP') + else: + command = 'git stash' + Upgrade.executioner(command, command, 1) - command = 'git clone https://github.com/usmannasir/cyberpanel' - Upgrade.executioner(command, 'Download CyberPanel', 1) - - shutil.move('cyberpanel', 'CyberCP') - - if branch != 'stable': - os.chdir('CyberCP') command = 'git checkout %s' % (branch) Upgrade.executioner(command, command, 1) - os.chdir('/usr/local') + + command = 'git pull' + Upgrade.executioner(command, command, 1) + ## Copy settings file @@ -2148,18 +2146,9 @@ vmail time.sleep(3) ## Upgrade version + Upgrade.fixPermissions() - ### get back imunify - - imunifyPublicBackup = '/usr/local' - imunifyPublicBackup = '%s/imunify' % (imunifyPublicBackup) - - try: - shutil.move(imunifyPublicBackup, '/usr/local/CyberCP/public') - except: - pass - ## Upgrade.upgradeVersion() From 5d4028982b3d0f8828c658a26ebe0e56c763e5cd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 15:51:19 +0500 Subject: [PATCH 029/240] prevent venv duplication --- cyberpanel_upgrade.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index e83db1620..d0addd80b 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -213,9 +213,13 @@ else check_return fi -rm -rf /usr/local/CyberPanel -virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel -check_return + +if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then + rm -rf /usr/local/CyberPanel/bin + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel + check_return +fi + rm -f requirments.txt wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip check_return @@ -237,8 +241,12 @@ else check_return fi -virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel -check_return +if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then + rm -rf /usr/local/CyberPanel/bin + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel + check_return +fi + rm -rf upgrade.py wget https://$GIT_CONTENT_URL/${BRANCH_NAME}/plogical/upgrade.py @@ -252,7 +260,12 @@ fi /usr/local/CyberPanel/bin/python upgrade.py $BRANCH_NAME check_return + +if [[ -f /usr/local/CyberCP/bin/python2 ]] ; then +rm -rf /usr/local/CyberCP/bin virtualenv -p /usr/bin/python3 /usr/local/CyberCP +fi + check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate From 0a48dd6fd730378cd6ac456e603bd7acf402a373 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 15:53:32 +0500 Subject: [PATCH 030/240] prevent venv duplication --- cyberpanel_upgrade.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index d0addd80b..ae417f829 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -241,11 +241,12 @@ else check_return fi -if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then - rm -rf /usr/local/CyberPanel/bin - virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel - check_return -fi +## Doing again to prevent an error - dont confuse later + +virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel +check_return + +## rm -rf upgrade.py wget https://$GIT_CONTENT_URL/${BRANCH_NAME}/plogical/upgrade.py From 9ba3d044308f6a894bfb9d61f55367896ca5b162 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 18:53:11 +0500 Subject: [PATCH 031/240] further improvements to upgrade --- cyberpanel_upgrade.sh | 4 ++-- plogical/upgrade.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index ae417f829..6c739dfe3 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -214,7 +214,7 @@ else fi -if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then +if [[ -f /usr/local/CyberPanel/bin/python2 ]] || [[ ! -f /usr/local/CyberPanel/bin ]] ; then rm -rf /usr/local/CyberPanel/bin virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel check_return @@ -262,7 +262,7 @@ fi /usr/local/CyberPanel/bin/python upgrade.py $BRANCH_NAME check_return -if [[ -f /usr/local/CyberCP/bin/python2 ]] ; then +if [[ -f /usr/local/CyberCP/bin/python2 ]] || [[ ! -f /usr/local/CyberCP/bin ]] ; then rm -rf /usr/local/CyberCP/bin virtualenv -p /usr/bin/python3 /usr/local/CyberCP fi diff --git a/plogical/upgrade.py b/plogical/upgrade.py index e668d8b27..a0d9cd074 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1291,6 +1291,18 @@ class Upgrade: command = 'git pull' Upgrade.executioner(command, command, 1) + elif currentBranch.find('not a git repository') > -1: + + os.chdir('/usr/local') + + command = 'git clone https://github.com/usmannasir/cyberpanel' + Upgrade.executioner(command, 'Download CyberPanel', 1) + + if os.path.exists('CyberCP'): + shutil.rmtree('CyberCP') + + shutil.move('cyberpanel', 'CyberCP') + else: command = 'git stash' Upgrade.executioner(command, command, 1) From 291518f73c3169abd99d9e1e7f800ca035a4e265 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 20:55:39 +0500 Subject: [PATCH 032/240] bug fix: upgrade --- cyberpanel_upgrade.sh | 24 +++++++++++++++++------- test.sh | 6 ------ 2 files changed, 17 insertions(+), 13 deletions(-) mode change 100644 => 100755 test.sh diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 6c739dfe3..ecc08bed0 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -214,10 +214,15 @@ else fi -if [[ -f /usr/local/CyberPanel/bin/python2 ]] || [[ ! -f /usr/local/CyberPanel/bin ]] ; then - rm -rf /usr/local/CyberPanel/bin - virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel - check_return +if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then + rm -rf /usr/local/CyberPanel/bin + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel + check_return +elif [[ -f /usr/local/CyberPanel/bin/ ]] ; then + echo -e "\nNo need to resetup virtualenv at /usr/local/CyberPanel...\n" +else + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel + check_return fi rm -f requirments.txt @@ -262,9 +267,14 @@ fi /usr/local/CyberPanel/bin/python upgrade.py $BRANCH_NAME check_return -if [[ -f /usr/local/CyberCP/bin/python2 ]] || [[ ! -f /usr/local/CyberCP/bin ]] ; then -rm -rf /usr/local/CyberCP/bin -virtualenv -p /usr/bin/python3 /usr/local/CyberCP +if [[ -f /usr/local/CyberCP/bin/python2 ]] ; then + rm -rf /usr/local/CyberCP/bin + virtualenv -p /usr/bin/python3 /usr/local/CyberCP +elif [[ -f /usr/local/CyberCP/bin/ ]] ; then + echo -e "\nNo need to resetup virtualenv at /usr/local/CyberCP...\n" +else + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberCP + check_return fi check_return diff --git a/test.sh b/test.sh old mode 100644 new mode 100755 index d9bdb6f94..e69de29bb --- a/test.sh +++ b/test.sh @@ -1,6 +0,0 @@ -test4 -<<<<<<< HEAD - -======= -test3 ->>>>>>> stable From a6228d4fd80fb723ab44a2d2f9638dd09a4c76ee Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 11 Apr 2020 21:06:34 +0500 Subject: [PATCH 033/240] bug fix: upgrade --- cyberpanel_upgrade.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index ecc08bed0..2a6d60836 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -215,13 +215,15 @@ fi if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then + echo -e "\nPython 2 dectected, doing resetup...\n" rm -rf /usr/local/CyberPanel/bin virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel check_return elif [[ -f /usr/local/CyberPanel/bin/ ]] ; then echo -e "\nNo need to resetup virtualenv at /usr/local/CyberPanel...\n" else - virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel + echo -e "\nNothing found, need fresh setup...\n" + virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel check_return fi @@ -259,7 +261,7 @@ wget https://$GIT_CONTENT_URL/${BRANCH_NAME}/plogical/upgrade.py if [[ $SERVER_COUNTRY == "CN" ]] ; then sed -i 's|wget https://raw.githubusercontent.com/usmannasir/cyberpanel/v1.9.4/lscpd-0.2.4 -P /usr/local/lscp/bin/|cp -f /usr/local/CyberCP/lscpd-0.2.4 /usr/local/lscp/bin/lscpd-0.2.4|g' upgrade.py sed -i 's|wget https://raw.githubusercontent.com/usmannasir/cyberpanel/%s/lscpd-0.2.4 -P /usr/local/lscp/bin/|cp -f /usr/local/CyberCP/lscpd-0.2.4 /usr/local/lscp/bin/lscpd-0.2.4|g' upgrade.py -sed -i $'s/0.2.4\' % (branch)/0.2.4\'/' upgrade.py +#sed -i $'s/0.2.4\' % (branch)/0.2.4\'/' upgrade.py sed -i 's|raw.githubusercontent.com/usmannasir/cyberpanel|'${GIT_CONTENT_URL}'|g' upgrade.py sed -i 's|git clone https://github.com/usmannasir/cyberpanel|git clone https://'${GIT_URL}'|g' upgrade.py fi From d5b770b80eef3df34b5d914dfcf65dfff08ceac4 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 11:21:31 +0500 Subject: [PATCH 034/240] bug fix: directory check --- cyberpanel_upgrade.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 2a6d60836..507423d60 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -219,7 +219,7 @@ if [[ -f /usr/local/CyberPanel/bin/python2 ]] ; then rm -rf /usr/local/CyberPanel/bin virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberPanel check_return -elif [[ -f /usr/local/CyberPanel/bin/ ]] ; then +elif [[ -d /usr/local/CyberPanel/bin/ ]] ; then echo -e "\nNo need to resetup virtualenv at /usr/local/CyberPanel...\n" else echo -e "\nNothing found, need fresh setup...\n" @@ -272,7 +272,7 @@ check_return if [[ -f /usr/local/CyberCP/bin/python2 ]] ; then rm -rf /usr/local/CyberCP/bin virtualenv -p /usr/bin/python3 /usr/local/CyberCP -elif [[ -f /usr/local/CyberCP/bin/ ]] ; then +elif [[ -d /usr/local/CyberCP/bin/ ]] ; then echo -e "\nNo need to resetup virtualenv at /usr/local/CyberCP...\n" else virtualenv -p /usr/bin/python3 --system-site-packages /usr/local/CyberCP From 3711a231d6af312fba92624212867134df624ea5 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 11:26:21 +0500 Subject: [PATCH 035/240] fetch remote branch is not present --- plogical/upgrade.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index a0d9cd074..98c785132 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1304,6 +1304,10 @@ class Upgrade: shutil.move('cyberpanel', 'CyberCP') else: + + command = 'git fetch' + Upgrade.executioner(command, command, 1) + command = 'git stash' Upgrade.executioner(command, command, 1) From a0e069be4f92ba497044b40bb948763963a6067a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 11:27:55 +0500 Subject: [PATCH 036/240] remove: pdns-master repo from old installations --- cyberpanel_upgrade.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 507423d60..c0e5beb79 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -27,6 +27,8 @@ rm -f /etc/yum.repos.d/MariaDB.repo rm -f /etc/yum.repos.d/lux.repo rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo +rm -rf /etc/yum.repos.d/powerdns-auth-master.repo +rm -rf /etc/yum.repos.d/gf.repo.rpmnew yum clean all yum update -y yum autoremove epel-release -y From 10786adc0ccda2a47fefba56ec6186b20e12a189 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 11:47:53 +0500 Subject: [PATCH 037/240] settings.py --- plogical/upgrade.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 98c785132..c525043d1 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1391,7 +1391,7 @@ class Upgrade: Upgrade.stdOut('Restoring settings file!') - writeToFile = open("/usr/local/CyberCP/CyberCP/settings.py", 'w') + writeToFile = open("/usr/local/settings.py", 'w') for items in data: if items.find('csf') > -1 or items.find('SESSION_COOKIE_SECURE') > -1 or items.find('CSRF_COOKIE_SECURE') > -1: @@ -1462,12 +1462,9 @@ CSRF_COOKIE_SECURE = True writeToFile.writelines("MEDIA_URL = '/home/cyberpanel/media/'\n") writeToFile.writelines('MEDIA_ROOT = MEDIA_URL\n') - if items.find('MEDIA_ROOT = MEDIA_URLDATA_UPLOAD_MAX_MEMORY_SIZE') > -1: writeToFile.writelines('MEDIA_ROOT = MEDIA_URL\n') - - ## if DATABASE_ROUTERS == 1: @@ -1475,6 +1472,11 @@ CSRF_COOKIE_SECURE = True writeToFile.close() + if os.path.exists("/usr/local/CyberCP/CyberCP/settings.py"): + os.remove("/usr/local/CyberCP/CyberCP/settings.py") + + shutil.move("/usr/local/settings.py", "/usr/local/CyberCP/CyberCP/settings.py") + Upgrade.stdOut('Settings file restored!') ## Move static files From 20b75db5e8f8d90d6c4fb6184950ac9d8edbf37f Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 13:01:24 +0500 Subject: [PATCH 038/240] settings.py --- CyberCP/settings.py | 4 +- plogical/upgrade.py | 200 +++++++++++--------------------------------- 2 files changed, 49 insertions(+), 155 deletions(-) diff --git a/CyberCP/settings.py b/CyberCP/settings.py index ef656129d..7074f6422 100755 --- a/CyberCP/settings.py +++ b/CyberCP/settings.py @@ -113,8 +113,8 @@ DATABASES = { 'NAME': 'cyberpanel', 'USER': 'cyberpanel', 'PASSWORD': 'Bz9gF7Hr7X4RtD', - 'HOST': '127.0.0.1', - 'PORT':'3307' + 'HOST': 'localhost', + 'PORT':'' }, 'rootdb': { 'ENGINE': 'django.db.backends.mysql', diff --git a/plogical/upgrade.py b/plogical/upgrade.py index c525043d1..ebc21e4ee 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1266,11 +1266,45 @@ class Upgrade: Upgrade.stdOut("Backing up settings file.") - shutil.copy("/usr/local/CyberCP/CyberCP/settings.py", "/usr/local/settings.py") + ## CyberPanel DB Creds + dbName = settings.DATABASES['default']['NAME'] + dbUser = settings.DATABASES['default']['USER'] + password = settings.DATABASES['default']['PASSWORD'] + + ## Root DB Creds + + rootdbName = settings.DATABASES['rootdb']['NAME'] + rootdbdbUser = settings.DATABASES['rootdb']['USER'] + rootdbpassword = settings.DATABASES['rootdb']['PASSWORD'] + + ## Complete db string + + completDBString = """\nDATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': '%s', + 'USER': '%s', + 'PASSWORD': '%s', + 'HOST': 'localhost', + 'PORT':'' + }, + 'rootdb': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': '%s', + 'USER': '%s', + 'PASSWORD': '%s', + 'HOST': 'localhost', + 'PORT': '', + }, +}\n""" % (dbName, dbUser, password, rootdbName, rootdbdbUser, rootdbpassword) + + settingsFile = '/usr/local/CyberCP/CyberCP/settings.py' + + settingsData = open(settingsFile, 'r').readlines() Upgrade.stdOut("Settings file backed up.") - ## Extract Latest files + ## Check git branch status os.chdir('/usr/local/CyberCP') @@ -1320,163 +1354,23 @@ class Upgrade: ## Copy settings file - data = open("/usr/local/settings.py", 'r').readlines() + DATABASESCHECK = 0 + writeToFile = open(settingsFile, 'w') - csrfCheck = 1 - for items in data: - if items.find('CsrfViewMiddleware') > -1: - csrfCheck = 0 + for items in settingsData: + if items.find('DATABASES = {') > -1: + DATABASESCHECK = 1 - pluginCheck = 1 - for items in data: - if items.find('pluginHolder') > -1: - pluginCheck = 0 + if DATABASESCHECK == 0: + writeToFile.write(items) - emailMarketing = 1 - for items in data: - if items.find('emailMarketing') > -1: - emailMarketing = 0 - - emailPremium = 1 - for items in data: - if items.find('emailPremium') > -1: - emailPremium = 0 - - s3Backups = 1 - for items in data: - if items.find('s3Backups') > -1: - s3Backups = 0 - - dockerManager = 1 - for items in data: - if items.find('dockerManager') > -1: - dockerManager = 0 - - containerization = 1 - for items in data: - if items.find('containerization') > -1: - containerization = 0 - - manageServices = 1 - for items in data: - if items.find('manageServices') > -1: - manageServices = 0 - - CLManager = 1 - for items in data: - if items.find('CLManager') > -1: - CLManager = 0 - - IncBackups = 1 - for items in data: - if items.find('IncBackups') > -1: - IncBackups = 0 - - WebTerminal = 1 - for items in data: - if items.find('WebTerminal') > -1: - WebTerminal = 0 - - SESSION_COOKIE_SECURE = 0 - - for items in data: - if items.find('SESSION_COOKIE_SECURE') > -1: - SESSION_COOKIE_SECURE = 0 - - DATABASE_ROUTERS = 1 - - for items in data: - if items.find('DATABASE_ROUTERS') > -1: - DATABASE_ROUTERS = 0 - - Upgrade.stdOut('Restoring settings file!') - - writeToFile = open("/usr/local/settings.py", 'w') - - for items in data: - if items.find('csf') > -1 or items.find('SESSION_COOKIE_SECURE') > -1 or items.find('CSRF_COOKIE_SECURE') > -1: - continue - if items.find("CommonMiddleware") > -1: - if csrfCheck == 1: - writeToFile.writelines(" 'django.middleware.csrf.CsrfViewMiddleware',\n") - - if items.find('DATABASE_ROUTERS') > -1: - writeToFile.writelines(items) - if SESSION_COOKIE_SECURE == 1: - con = """SESSION_COOKIE_SECURE = True -CSRF_COOKIE_SECURE = True -""" - writeToFile.writelines(con) - - elif items.find("'filemanager',") > -1: - writeToFile.writelines(items) - if pluginCheck == 1: - writeToFile.writelines(" 'pluginHolder',\n") - if emailMarketing == 1: - writeToFile.writelines(" 'emailMarketing',\n") - if emailPremium == 1: - writeToFile.writelines(" 'emailPremium',\n") - if s3Backups == 1: - writeToFile.writelines(" 's3Backups',\n") - if dockerManager == 1: - writeToFile.writelines(" 'dockerManager',\n") - - if containerization == 1: - writeToFile.writelines(" 'containerization',\n") - - if manageServices == 1: - writeToFile.writelines(" 'manageServices',\n") - - - if CLManager == 1: - writeToFile.writelines(" 'CLManager',\n") - - if IncBackups == 1: - writeToFile.writelines(" 'IncBackups',\n") - - if WebTerminal == 1: - writeToFile.writelines(" 'WebTerminal',\n") - - else: - writeToFile.writelines(items) - - ## - - DATA_UPLOAD_MAX_MEMORY_SIZE = 1 - for items in data: - if items.find('DATA_UPLOAD_MAX_MEMORY_SIZE') > -1: - DATA_UPLOAD_MAX_MEMORY_SIZE = 0 - writeToFile.writelines("\nDATA_UPLOAD_MAX_MEMORY_SIZE = 52428800\n") - - if DATA_UPLOAD_MAX_MEMORY_SIZE == 1: - writeToFile.writelines("\nDATA_UPLOAD_MAX_MEMORY_SIZE = 52428800\n") - - ## - - MEDIA_URL = 1 - for items in data: - if items.find('MEDIA_URL') > -1: - MEDIA_URL = 0 - - if MEDIA_URL == 1: - writeToFile.writelines("MEDIA_URL = '/home/cyberpanel/media/'\n") - writeToFile.writelines('MEDIA_ROOT = MEDIA_URL\n') - - if items.find('MEDIA_ROOT = MEDIA_URLDATA_UPLOAD_MAX_MEMORY_SIZE') > -1: - writeToFile.writelines('MEDIA_ROOT = MEDIA_URL\n') - - ## - - if DATABASE_ROUTERS == 1: - writeToFile.writelines("\nDATABASE_ROUTERS = ['backup.backupRouter.backupRouter']\n") + if items.find('DATABASE_ROUTERS = [') > -1: + DATABASESCHECK = 0 + writeToFile.write(completDBString) + writeToFile.write(items) writeToFile.close() - if os.path.exists("/usr/local/CyberCP/CyberCP/settings.py"): - os.remove("/usr/local/CyberCP/CyberCP/settings.py") - - shutil.move("/usr/local/settings.py", "/usr/local/CyberCP/CyberCP/settings.py") - Upgrade.stdOut('Settings file restored!') ## Move static files From 094432cad032143266cabd6a39c0db8008d5c21a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 13:21:59 +0500 Subject: [PATCH 039/240] settings.py --- CyberCP/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/CyberCP/settings.py b/CyberCP/settings.py index 7074f6422..a43db4fc9 100755 --- a/CyberCP/settings.py +++ b/CyberCP/settings.py @@ -187,6 +187,7 @@ LANGUAGES = ( ('vi', _('Vietnamese')), ('it', _('Italian')), ('de', _('Deutsch')), + ('de', _('Deutsch')), ) MEDIA_URL = '/home/cyberpanel/media/' From dfcf54b77184405191c217e9b007db28d9793dc1 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 13:29:10 +0500 Subject: [PATCH 040/240] settings.py --- CyberCP/settings.py | 2 +- plogical/upgrade.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CyberCP/settings.py b/CyberCP/settings.py index a43db4fc9..e5df5e38c 100755 --- a/CyberCP/settings.py +++ b/CyberCP/settings.py @@ -186,7 +186,7 @@ LANGUAGES = ( ('pl', _('Polish')), ('vi', _('Vietnamese')), ('it', _('Italian')), - ('de', _('Deutsch')), + ('it', _('Italian')), ('de', _('Deutsch')), ) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index ebc21e4ee..0c89bce1a 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1300,8 +1300,6 @@ class Upgrade: settingsFile = '/usr/local/CyberCP/CyberCP/settings.py' - settingsData = open(settingsFile, 'r').readlines() - Upgrade.stdOut("Settings file backed up.") ## Check git branch status @@ -1354,6 +1352,8 @@ class Upgrade: ## Copy settings file + settingsData = open(settingsFile, 'r').readlines() + DATABASESCHECK = 0 writeToFile = open(settingsFile, 'w') From 5a5fe0d11c4e51809bd9bf1c4b4c625e53a01996 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Apr 2020 13:32:54 +0500 Subject: [PATCH 041/240] settings.py --- CyberCP/settings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/CyberCP/settings.py b/CyberCP/settings.py index e5df5e38c..7074f6422 100755 --- a/CyberCP/settings.py +++ b/CyberCP/settings.py @@ -186,7 +186,6 @@ LANGUAGES = ( ('pl', _('Polish')), ('vi', _('Vietnamese')), ('it', _('Italian')), - ('it', _('Italian')), ('de', _('Deutsch')), ) From dc2461dceec680e8501f9f1a21c61536a942ed75 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 00:58:56 +0500 Subject: [PATCH 042/240] cent8 repo --- cyberpanel.sh | 12 ++- install/CyberPanel8.repo | 4 + install/install.py | 126 +++---------------------------- install/installCyberPanel.py | 8 +- websiteFunctions/StagingSetup.py | 2 +- websiteFunctions/website.py | 3 - 6 files changed, 33 insertions(+), 122 deletions(-) create mode 100644 install/CyberPanel8.repo diff --git a/cyberpanel.sh b/cyberpanel.sh index f5182bffe..c76bf6e45 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -398,7 +398,13 @@ fi install_required() { -curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo + +if [[ $CENTOS_8 == "True" ]] ; then + curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo +elif [[ $CENTOS_8 == "False" ]] ; then + curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo +fi + if [[ $SERVER_COUNTRY == "CN" ]] ; then mkdir /root/.config mkdir /root/.config/pip @@ -421,6 +427,8 @@ if [[ $SERVER_OS == "CentOS" ]] ; then timeout 10 rpm --import https://$DOWNLOAD_SERVER/ius/RPM-GPG-KEY-IUS-7 timeout 10 rpm --import https://repo.dovecot.org/DOVECOT-REPO-GPG timeout 10 rpm --import https://copr-be.cloud.fedoraproject.org/results/copart/restic/pubkey.gpg + timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-EP-8 + timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-GF-8 yum clean all yum update -y yum autoremove epel-release -y @@ -432,7 +440,7 @@ if [[ $SERVER_OS == "CentOS" ]] ; then check_return fi if [[ $CENTOS_8 == "True" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat mariadb-devel openssl-devel MariaDB-shared mariadb-devel + yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat mariadb-devel openssl-devel mariadb-devel check_return dnf --enablerepo=PowerTools install gpgme-devel -y check_return diff --git a/install/CyberPanel8.repo b/install/CyberPanel8.repo new file mode 100644 index 000000000..74586b25e --- /dev/null +++ b/install/CyberPanel8.repo @@ -0,0 +1,4 @@ +[CyberPanel] +name=CyberPanel +baseurl=https://rep8.cyberpanel.net/ +gpgcheck=1 \ No newline at end of file diff --git a/install/install.py b/install/install.py index 5dd6625f4..1ae87ef4e 100755 --- a/install/install.py +++ b/install/install.py @@ -679,7 +679,6 @@ class preFlightsChecks: try: if self.distro == centos: - command = 'yum remove postfix -y' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) elif self.distro == ubuntu: @@ -693,7 +692,7 @@ class preFlightsChecks: if self.distro == centos: command = 'yum install --enablerepo=CyberPanel -y postfix3 postfix3-ldap postfix3-mysql postfix3-pcre' elif self.distro == cent8: - command = 'dnf install postfix postfix-mysql -y' + command = 'dnf --enablerepo=CyberPanel install postfix postfix-mysql-y ' else: command = 'apt-get -y debconf-utils' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) @@ -721,6 +720,8 @@ class preFlightsChecks: if self.distro == centos or self.distro == cent8: command = 'yum --enablerepo=CyberPanel -y install dovecot dovecot-mysql' + elif self.distro == cent8: + command = 'dnf --enablerepe=CyberPanel install dovecot23 dovecot23-mysql -y' else: command = 'apt-get -y install dovecot-mysql' @@ -1703,8 +1704,10 @@ imap_folder_list_limit = 0 def installOpenDKIM(self): try: - if self.distro == centos or self.distro == cent8: + if self.distro == centos: command = 'yum -y install opendkim' + elif self.distro == cent8: + command = 'dnf --enablerepe=CyberPanel opendkim -y' else: command = 'apt-get -y install opendkim' @@ -1833,60 +1836,6 @@ milter_default_action = accept return res # Though probably not used - def setupVirtualEnv(self, distro): - try: - - ## - - count = 0 - if distro == ubuntu: - # You can't install all at once! So install one at a time. - preFlightsChecks.stdOut("Installing python prerequisites", 1) - preFlightsChecks.installOne('libcurl4-gnutls-dev') - preFlightsChecks.installOne('libgnutls-dev') - preFlightsChecks.installOne('libgcrypt20-dev') - preFlightsChecks.installOne('libattr1') - preFlightsChecks.installOne('libattr1-dev') - preFlightsChecks.installOne('liblzma-dev') - preFlightsChecks.installOne('libgpgme-dev') - preFlightsChecks.installOne('libmariadbclient-dev') - preFlightsChecks.installOne('libcurl4-gnutls-dev') - preFlightsChecks.installOne('libssl-dev') - preFlightsChecks.installOne('nghttp2') - preFlightsChecks.installOne('libnghttp2-dev') - preFlightsChecks.installOne('idn2') - preFlightsChecks.installOne('libidn2-dev') - preFlightsChecks.installOne('libidn2-0-dev') - preFlightsChecks.installOne('librtmp-dev') - preFlightsChecks.installOne('libpsl-dev') - preFlightsChecks.installOne('nettle-dev') - preFlightsChecks.installOne('libgnutls28-dev') - preFlightsChecks.installOne('libldap2-dev') - preFlightsChecks.installOne('libgssapi-krb5-2') - preFlightsChecks.installOne('libk5crypto3') - preFlightsChecks.installOne('libkrb5-dev') - preFlightsChecks.installOne('libcomerr2') - preFlightsChecks.installOne('libldap2-dev') - preFlightsChecks.installOne('python-gpg') - preFlightsChecks.installOne('python-gpgme') - else: - command = "yum install -y libattr-devel xz-devel gpgme-devel mariadb-devel curl-devel" - preFlightsChecks.call(command, distro, command, command, 1, 1, os.EX_OSERR) - - ## - - os.chdir(self.cwd) - - command = "chmod +x venvsetup.sh" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "./venvsetup.sh" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - except OSError as msg: - logging.InstallLog.writeToFile('[ERROR] ' + str(msg) + " [setupVirtualEnv]") - return 0 - @staticmethod def enableDisableDNS(state): try: @@ -1973,69 +1922,18 @@ milter_default_action = accept except: pass - @staticmethod - def p3(distro): - ### Virtual Env 3 - - if distro == centos: - command = 'yum -y install python36 -y' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - command = 'virtualenv -p python3 /usr/local/CyberPanel/p3' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - env_path = '/usr/local/CyberPanel/p3' - subprocess.call(['virtualenv', env_path]) - activate_this = os.path.join(env_path, 'bin', 'activate_this.py') - exec(compile(open(activate_this, "rb").read(), activate_this, 'exec'), dict(__file__=activate_this)) - - command = "pip3 install --ignore-installed -r %s" % ('/usr/local/CyberCP/WebTerminal/requirments.txt') - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - else: - command = 'apt install -y python3-pip' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - command = 'apt install build-essential libssl-dev libffi-dev python3-dev -y' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - command = 'apt install -y python3-venv' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - command = 'virtualenv -p python3 /usr/local/CyberPanel/p3' - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - - env_path = '/usr/local/CyberPanel/p3' - subprocess.call(['virtualenv', env_path]) - activate_this = os.path.join(env_path, 'bin', 'activate_this.py') - exec(compile(open(activate_this, "rb").read(), activate_this, 'exec'), dict(__file__=activate_this)) - - command = "pip3 install --ignore-installed -r %s" % ('/usr/local/CyberCP/WebTerminal/requirments.txt') - preFlightsChecks.call(command, distro, '[install python36]', - 'install python36', - 1, 0, os.EX_OSERR) - def installRestic(self): try: CentOSPath = '/etc/redhat-release' if os.path.exists(CentOSPath): - command = 'yum --enablerepo=CyberPanel install restic -y' + + if self.distro == centos: + command = 'yum --enablerepo=CyberPanel install restic -y' + else: + command = 'dnf --enablerepe=CyberPanel restic -y' + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) else: command = 'apt-get update -y' diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index dc263b9a0..d0f91994b 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -213,8 +213,10 @@ class InstallCyberPanel: if self.distro == ubuntu: command = "apt-get -y install mariadb-server" - else: + elif self.distro == centos: command = 'yum --enablerepo=CyberPanel -y install mariadb-server' + elif self.distro == cent8: + command = 'dnf -y install mariadb-server' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) @@ -327,8 +329,10 @@ class InstallCyberPanel: def installPureFTPD(self): if self.distro == ubuntu: command = 'apt-get -y install ' + install.preFlightsChecks.pureFTPDServiceName(self.distro) - else: + elif self.distro == centos: command = "yum install -y pure-ftpd" + elif self.distro == cent8: + command = 'dnf --enablerepe=CyberPanel install pure-ftpd -y' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index 2084337e2..dd0351fc0 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -66,7 +66,7 @@ class StagingSetup(multi.Thread): masterPath = '/home/%s/public_html' % (masterDomain) - command = 'rsync -avzh --exclude "%s" --exclude "wp-content/backups" --exclude "wp-content/updraft" --exclude "wp-content/cache" --exclude "wp-content/plugins/litespeed-cache" %s/ %s' % ( + command = 'rsync -avzh --exclude "%s" --exclude ".git" --exclude "wp-content/backups" --exclude "wp-content/updraft" --exclude "wp-content/cache" --exclude "wp-content/plugins/litespeed-cache" %s/ %s' % ( domain, masterPath, path) ProcessUtilities.executioner(command, website.externalApp) diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 9a6703db5..553c27774 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -2760,14 +2760,11 @@ StrictHostKeyChecking no writeToFile.write(message) writeToFile.close() - extraArgs['tempStatusPath'] = tempStatusPath st = StagingSetup('startCloning', extraArgs) st.start() - - data_ret = {'status': 1, 'error_message': 'None', 'tempStatusPath': tempStatusPath} json_data = json.dumps(data_ret) return HttpResponse(json_data) From 9a5beedbc977d5dd33533bff3093fe2f24dfa1d6 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 01:11:33 +0500 Subject: [PATCH 043/240] preinstall zip on cent8 --- cyberpanel.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/cyberpanel.sh b/cyberpanel.sh index c76bf6e45..4a9ef2020 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -401,6 +401,7 @@ install_required() { if [[ $CENTOS_8 == "True" ]] ; then curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo + dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo fi From 997f944bf7bf6083f203f8abb52c4184683a6a59 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 01:22:52 +0500 Subject: [PATCH 044/240] install python devel cent8 --- cyberpanel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 4a9ef2020..620082b7b 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -441,7 +441,7 @@ if [[ $SERVER_OS == "CentOS" ]] ; then check_return fi if [[ $CENTOS_8 == "True" ]] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel curl-devel git tar socat mariadb-devel openssl-devel mariadb-devel + dnf install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat check_return dnf --enablerepo=PowerTools install gpgme-devel -y check_return From 98b8b9c09cc554f26bf4f2fe019dc361471e2299 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 08:46:08 +0500 Subject: [PATCH 045/240] cent8: php install fix --- install/install.py | 2 +- install/installCyberPanel.py | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/install/install.py b/install/install.py index 1ae87ef4e..580ff417a 100755 --- a/install/install.py +++ b/install/install.py @@ -692,7 +692,7 @@ class preFlightsChecks: if self.distro == centos: command = 'yum install --enablerepo=CyberPanel -y postfix3 postfix3-ldap postfix3-mysql postfix3-pcre' elif self.distro == cent8: - command = 'dnf --enablerepo=CyberPanel install postfix postfix-mysql-y ' + command = 'dnf --enablerepo=CyberPanel install postfix postfix-mysql -y ' else: command = 'apt-get -y debconf-utils' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index d0f91994b..a664f6631 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -165,16 +165,14 @@ class InstallCyberPanel: if res != 0: InstallCyberPanel.stdOut("Failed to install PHP on Ubuntu.", 1, 1) - elif self.distro == cent8 or self.distro == centos: + elif self.distro == centos: command = 'yum -y groupinstall lsphp-all' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - InstallCyberPanel.stdOut("LiteSpeed PHPs successfully installed!", 1) ## only php 71 - if self.distro == centos or self.distro == cent8: + if self.distro == centos: command = 'yum install lsphp71 lsphp71-json lsphp71-xmlrpc lsphp71-xml lsphp71-soap lsphp71-snmp ' \ 'lsphp71-recode lsphp71-pspell lsphp71-process lsphp71-pgsql lsphp71-pear lsphp71-pdo lsphp71-opcache ' \ @@ -207,6 +205,10 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + if self.distro == cent8: + command = 'dnf install lsphp71* lsphp72* lsphp73* lsphp74* --exclude lsphp73-pecl-zip -y' + subprocess.call(command, shell=True) + def installMySQL(self, mysql): ############## Install mariadb ###################### @@ -332,7 +334,7 @@ class InstallCyberPanel: elif self.distro == centos: command = "yum install -y pure-ftpd" elif self.distro == cent8: - command = 'dnf --enablerepe=CyberPanel install pure-ftpd -y' + command = 'dnf --enablerepo=CyberPanel install pure-ftpd -y' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) @@ -482,12 +484,12 @@ class InstallCyberPanel: # ". This may need to be fixed manually as 'echo \"nameserver 8.8.8.8\"> " # "/etc/resolv.conf'", 1, 1, os.EX_OSERR) - if self.distro == cent8: - command = 'dnf config-manager --set-enabled PowerTools' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - - command = 'curl -o /etc/yum.repos.d/powerdns-auth-master.repo https://repo.powerdns.com/repo-files/centos-auth-master.repo' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + # if self.distro == cent8: + # command = 'dnf config-manager --set-enabled PowerTools' + # install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + # + # command = 'curl -o /etc/yum.repos.d/powerdns-auth-master.repo https://repo.powerdns.com/repo-files/centos-auth-master.repo' + # install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) if self.distro == ubuntu: command = "DEBIAN_FRONTEND=noninteractive apt-get -y install pdns-server pdns-backend-mysql" From 1177c43ad35fcf0fa4c26d83cdb71fc5c1217dc5 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 09:09:21 +0500 Subject: [PATCH 046/240] fed key --- cyberpanel.sh | 1 + install/install.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 620082b7b..dece392a1 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -430,6 +430,7 @@ if [[ $SERVER_OS == "CentOS" ]] ; then timeout 10 rpm --import https://copr-be.cloud.fedoraproject.org/results/copart/restic/pubkey.gpg timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-EP-8 timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-GF-8 + curl https://getfedora.org/static/fedora.gpg | gpg --import yum clean all yum update -y yum autoremove epel-release -y diff --git a/install/install.py b/install/install.py index 580ff417a..cf68c7e93 100755 --- a/install/install.py +++ b/install/install.py @@ -1707,7 +1707,7 @@ imap_folder_list_limit = 0 if self.distro == centos: command = 'yum -y install opendkim' elif self.distro == cent8: - command = 'dnf --enablerepe=CyberPanel opendkim -y' + command = 'dnf --enablerepo=CyberPanel install opendkim -y' else: command = 'apt-get -y install opendkim' @@ -1932,7 +1932,7 @@ milter_default_action = accept if self.distro == centos: command = 'yum --enablerepo=CyberPanel install restic -y' else: - command = 'dnf --enablerepe=CyberPanel restic -y' + command = 'dnf --enablerepo=CyberPanel install restic -y' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) else: From 32fa62d8f8ab01d749fa27789806f7557761d26c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 11:01:15 +0500 Subject: [PATCH 047/240] refactor instal/upgrade process --- cyberpanel.sh | 42 ++++++++++++------------------------------ cyberpanel_upgrade.sh | 9 ++++++--- install/install.py | 2 +- 3 files changed, 19 insertions(+), 34 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index dece392a1..699cd9b50 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -406,19 +406,9 @@ elif [[ $CENTOS_8 == "False" ]] ; then curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo fi -if [[ $SERVER_COUNTRY == "CN" ]] ; then - mkdir /root/.config - mkdir /root/.config/pip - cat << EOF > /root/.config/pip/pip.conf -[global] -index-url = https://pypi.tuna.tsinghua.edu.cn/simple -[install] -trusted-host=pypi.tuna.tsinghua.edu.cn -EOF -fi - echo -e "\nInstalling necessary components..." if [[ $SERVER_OS == "CentOS" ]] ; then + timeout 10 rpm --import https://$DOWNLOAD_SERVER/mariadb/RPM-GPG-KEY-MariaDB timeout 10 rpm --import https://$DOWNLOAD_SERVER/litespeed/RPM-GPG-KEY-litespeed timeout 10 rpm --import https://$DOWNLOAD_SERVER/powerdns/FD380FBB-pub.asc @@ -430,7 +420,9 @@ if [[ $SERVER_OS == "CentOS" ]] ; then timeout 10 rpm --import https://copr-be.cloud.fedoraproject.org/results/copart/restic/pubkey.gpg timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-EP-8 timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-CP-GF-8 + timeout 10 rpm --import https://rep8.cyberpanel.net/RPM-GPG-KEY-centosofficialcp curl https://getfedora.org/static/fedora.gpg | gpg --import + yum clean all yum update -y yum autoremove epel-release -y @@ -438,35 +430,25 @@ if [[ $SERVER_OS == "CentOS" ]] ; then rm -f /etc/yum.repos.d/epel.repo.rpmsave if [[ $CENTOS_8 == "False" ]] ; then - yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel + yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel yum-utils python36u python36u-pip python36u-devel + check_return + yum -y groupinstall development check_return fi if [[ $CENTOS_8 == "True" ]] ; then - dnf install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat + dnf install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat python3 check_return dnf --enablerepo=PowerTools install gpgme-devel -y check_return fi -if [[ $DEV == "ON" ]] ; then - if [[ $CENTOS_8 == "False" ]] ; then - yum -y install yum-utils - yum -y groupinstall development - yum -y install python36u python36u-pip python36u-devel - check_return - fi - if [[ $CENTOS_8 == "True" ]] ; then - dnf install python3 -y - check_return - fi - if [[ $SERVER_OS == "CentOS" ]] ; then - pip3.6 install virtualenv==16.7.9 - else - pip3.6 install virtualenv - fi + if [[ $SERVER_OS == "CentOS" ]] ; then + pip3.6 install virtualenv==16.7.9 + else + pip3.6 install virtualenv + fi check_return fi -fi if [[ $SERVER_OS == "Ubuntu" ]] ; then apt update -y diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index c0e5beb79..a20885758 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -14,7 +14,6 @@ SERVER_COUNTRY=$(curl --silent --max-time 5 https://cyberpanel.sh/?country) ### Update and remove not needed repos -curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo rm -f /etc/yum.repos.d/ius-archive.repo rm -f /etc/yum.repos.d/copart-restic-epel-7.repo rm -f /etc/yum.repos.d/dovecot.repo @@ -29,6 +28,7 @@ rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo rm -rf /etc/yum.repos.d/powerdns-auth-master.repo rm -rf /etc/yum.repos.d/gf.repo.rpmnew +rm -rf /etc/yum.repos.d/CentOS-AppStream.repo yum clean all yum update -y yum autoremove epel-release -y @@ -168,14 +168,17 @@ OUTPUT=$(cat /etc/*release) if echo $OUTPUT | grep -q "CentOS Linux 7" ; then echo -e "\nDetecting CentOS 7.X...\n" SERVER_OS="CentOS7" + curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo yum clean all yum update -y elif echo $OUTPUT | grep -q "CloudLinux 7" ; then echo -e "\nDetecting CloudLinux 7.X...\n" SERVER_OS="CentOS7" + curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo yum clean all yum update -y elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then + curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo echo -e "\nDetecting CentOS 8.X...\n" SERVER_OS="CentOS8" yum clean all @@ -193,9 +196,9 @@ fi if [ $SERVER_OS = "CentOS7" ] ; then yum -y install yum-utils yum -y groupinstall development - yum -y install python36u python36u-pip python36u-devel openssl-devel MariaDB-shared mariadb-devel + yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel elif [ $SERVER_OS = "CentOS8" ] ; then - yum install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar + dnf install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat dnf --enablerepo=PowerTools install gpgme-devel -y dnf install python3 -y else diff --git a/install/install.py b/install/install.py index cf68c7e93..cb1720b02 100755 --- a/install/install.py +++ b/install/install.py @@ -1932,7 +1932,7 @@ milter_default_action = accept if self.distro == centos: command = 'yum --enablerepo=CyberPanel install restic -y' else: - command = 'dnf --enablerepo=CyberPanel install restic -y' + command = 'dnf --enablerepo=CyberPanel install restic -y --nogpgcheck' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) else: From 693718b9d2ece80fe3bbda2d68ce318a5681de2a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 11:10:59 +0500 Subject: [PATCH 048/240] remove appstream --- cyberpanel.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/cyberpanel.sh b/cyberpanel.sh index 699cd9b50..6788135eb 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -400,6 +400,7 @@ fi install_required() { if [[ $CENTOS_8 == "True" ]] ; then + rm -rf /etc/yum.repos.d/CentOS-AppStream.repo curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then From 6f67b185c40b1933fbf528b82c4ab3fc5c39dced Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 11:24:18 +0500 Subject: [PATCH 049/240] remove appstream --- cyberpanel.sh | 2 +- cyberpanel_upgrade.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 6788135eb..d5ac3ec86 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -400,7 +400,7 @@ fi install_required() { if [[ $CENTOS_8 == "True" ]] ; then - rm -rf /etc/yum.repos.d/CentOS-AppStream.repo + echo 'enabled=0' >> /etc/yum.repos.d/CentOS-AppStream.repo curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index a20885758..60c612ec2 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -28,7 +28,7 @@ rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo rm -rf /etc/yum.repos.d/powerdns-auth-master.repo rm -rf /etc/yum.repos.d/gf.repo.rpmnew -rm -rf /etc/yum.repos.d/CentOS-AppStream.repo +echo 'enabled=0' >> /etc/yum.repos.d/CentOS-AppStream.repo yum clean all yum update -y yum autoremove epel-release -y From 62b0893a9d6f48b858892411f48f8d29a9d8cfd2 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 11:27:55 +0500 Subject: [PATCH 050/240] remove appstream --- cyberpanel.sh | 2 +- cyberpanel_upgrade.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index d5ac3ec86..b6c8525b7 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -400,7 +400,7 @@ fi install_required() { if [[ $CENTOS_8 == "True" ]] ; then - echo 'enabled=0' >> /etc/yum.repos.d/CentOS-AppStream.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 60c612ec2..a47d603a3 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -28,7 +28,7 @@ rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo rm -rf /etc/yum.repos.d/powerdns-auth-master.repo rm -rf /etc/yum.repos.d/gf.repo.rpmnew -echo 'enabled=0' >> /etc/yum.repos.d/CentOS-AppStream.repo +sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo yum clean all yum update -y yum autoremove epel-release -y From 89f891b29f251568c8e968f634e6b20360c17e96 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 11:40:10 +0500 Subject: [PATCH 051/240] gpg key cent8 --- install/CyberPanel8.repo | 1 + 1 file changed, 1 insertion(+) diff --git a/install/CyberPanel8.repo b/install/CyberPanel8.repo index 74586b25e..eff2f1345 100644 --- a/install/CyberPanel8.repo +++ b/install/CyberPanel8.repo @@ -1,4 +1,5 @@ [CyberPanel] name=CyberPanel baseurl=https://rep8.cyberpanel.net/ +gpgkey=https://rep.cyberpanel.net/RPM-GPG-KEY-cyberpanel gpgcheck=1 \ No newline at end of file From 113b8f93992a493856a20a2181966f9339ffed3f Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 15:53:55 +0500 Subject: [PATCH 052/240] enable appstream --- cyberpanel.sh | 2 +- cyberpanel_upgrade.sh | 2 +- install/install.py | 4 ++-- install/installCyberPanel.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index b6c8525b7..282be2d53 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -400,7 +400,7 @@ fi install_required() { if [[ $CENTOS_8 == "True" ]] ; then - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo + #sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index a47d603a3..913925bb0 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -28,7 +28,7 @@ rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo rm -rf /etc/yum.repos.d/powerdns-auth-master.repo rm -rf /etc/yum.repos.d/gf.repo.rpmnew -sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo +#sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo yum clean all yum update -y yum autoremove epel-release -y diff --git a/install/install.py b/install/install.py index cb1720b02..f93461f28 100755 --- a/install/install.py +++ b/install/install.py @@ -692,7 +692,7 @@ class preFlightsChecks: if self.distro == centos: command = 'yum install --enablerepo=CyberPanel -y postfix3 postfix3-ldap postfix3-mysql postfix3-pcre' elif self.distro == cent8: - command = 'dnf --enablerepo=CyberPanel install postfix postfix-mysql -y ' + command = 'dnf --enablerepo=CyberPanel install postfix3 postfix3-mysql -y ' else: command = 'apt-get -y debconf-utils' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) @@ -721,7 +721,7 @@ class preFlightsChecks: if self.distro == centos or self.distro == cent8: command = 'yum --enablerepo=CyberPanel -y install dovecot dovecot-mysql' elif self.distro == cent8: - command = 'dnf --enablerepe=CyberPanel install dovecot23 dovecot23-mysql -y' + command = 'dnf --enablerepo=CyberPanel install dovecot23 dovecot23-mysql -y' else: command = 'apt-get -y install dovecot-mysql' diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index a664f6631..f8edb0f5a 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -218,7 +218,7 @@ class InstallCyberPanel: elif self.distro == centos: command = 'yum --enablerepo=CyberPanel -y install mariadb-server' elif self.distro == cent8: - command = 'dnf -y install mariadb-server' + command = 'dnf --enablerepo=CyberPanel -y install mariadb-server' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) From 42530273924c6c0dbfeecb5647203e08eb7e408e Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 13 Apr 2020 16:11:34 +0500 Subject: [PATCH 053/240] dovecot --- install/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/install.py b/install/install.py index f93461f28..a5caf8699 100755 --- a/install/install.py +++ b/install/install.py @@ -718,7 +718,7 @@ class preFlightsChecks: ## - if self.distro == centos or self.distro == cent8: + if self.distro == centos: command = 'yum --enablerepo=CyberPanel -y install dovecot dovecot-mysql' elif self.distro == cent8: command = 'dnf --enablerepo=CyberPanel install dovecot23 dovecot23-mysql -y' From 19dfc58c47344f7277db146968b8a6e42dfd5a23 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 14 Apr 2020 16:39:47 +0500 Subject: [PATCH 054/240] python packages --- cyberpanel_upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 913925bb0..d4168dc73 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -196,7 +196,7 @@ fi if [ $SERVER_OS = "CentOS7" ] ; then yum -y install yum-utils yum -y groupinstall development - yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel + yum --enablerepo=CyberPanel install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel gpgme-devel curl-devel git socat openssl-devel MariaDB-shared mariadb-devel python36u python36u-pip python36u-devel elif [ $SERVER_OS = "CentOS8" ] ; then dnf install -y wget strace htop net-tools telnet curl which bc telnet htop libevent-devel gcc libattr-devel xz-devel mariadb-devel curl-devel git platform-python-devel tar socat dnf --enablerepo=PowerTools install gpgme-devel -y From 9f9ba8e5ed8b48653583800ed1484ea6803211e0 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 14 Apr 2020 23:22:48 +0500 Subject: [PATCH 055/240] update lscpd --- install/install.py | 20 +++++++++++++++++++- lscpd-0.2.4 => lscpd-0.2.5 | Bin 29251320 -> 29251672 bytes plogical/upgrade.py | 4 ++-- 3 files changed, 21 insertions(+), 3 deletions(-) rename lscpd-0.2.4 => lscpd-0.2.5 (79%) mode change 100644 => 100755 diff --git a/install/install.py b/install/install.py index a5caf8699..8e4417227 100755 --- a/install/install.py +++ b/install/install.py @@ -1331,7 +1331,25 @@ imap_folder_list_limit = 0 preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) command = 'tar zxf lscp.tar.gz -C /usr/local/' - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + + ### + + lscpdPath = '/usr/local/lscp/bin/lscpd' + + command = 'cp -f /usr/local/CyberCP/lscpd-0.2.5 /usr/local/lscp/bin/lscpd-0.2.5' + preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + + command = 'rm -f /usr/local/lscp/bin/lscpd' + preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + + command = 'mv /usr/local/lscp/bin/lscpd-0.2.5 /usr/local/lscp/bin/lscpd' + preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + + command = 'chmod 755 %s' % (lscpdPath) + preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + + ## command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /usr/local/lscp/conf/key.pem -out /usr/local/lscp/conf/cert.pem' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) diff --git a/lscpd-0.2.4 b/lscpd-0.2.5 old mode 100644 new mode 100755 similarity index 79% rename from lscpd-0.2.4 rename to lscpd-0.2.5 index 8dc0b63ba2d8a998ae757dcb1e4669ee9ae50eb7..5ce38f60d6d3842c69397219c92bef40c3872982 GIT binary patch delta 9090623 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

b^eu#Gf<59~(;^zVWFF(W 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%0DxhZHUfP$k?w_rlK4B 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

A4uPwVc6O~Y-gzn@{zii3x1UTE`L^OvFn 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%0D3ep|hWM3nbPP3aX_bsRdw>G#Q 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 C6fJ8h}TaWj$r8 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

aJGw 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%0D*hxJbXS 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 z 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%0A|4Mw2 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 e|Cu({M0GNZ2P$_r9Rnp{JW#m| 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

!e)%CGS~OK~=P`g#7zQW0P0((`&^XMo=MANpvO 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%0AZ^%+cW2ckOs|r5qY73#WXtbN-8D5W90B{d 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

diff --git a/loginSystem/views.py b/loginSystem/views.py index 21b8d7e47..cfb93a717 100644 --- a/loginSystem/views.py +++ b/loginSystem/views.py @@ -69,6 +69,8 @@ def verifyLogin(request): user_Language = "it" elif data['languageSelection'] == "German": user_Language = "de" + elif data['languageSelection'] == "Indonesian": + user_Language = "id" translation.activate(user_Language) response = HttpResponse() From 59d3b3ac43fb6dd85afec7428cde8edfda33d2a5 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 23 Apr 2020 12:48:54 +0500 Subject: [PATCH 071/240] remove requirments.txt dependency on ubuntu during upgrade --- cyberpanel_upgrade.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 8daa94fec..fff198a95 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -244,7 +244,7 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberPanel/bin/activate check_return - pip3 install --ignore-installed -r requirements.txt + pip3 install --ignore-installed -r /usr/local/pip-packs/* check_return else source /usr/local/CyberPanel/bin/activate @@ -288,7 +288,7 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate check_return - pip3 install --ignore-installed -r requirements.txt + pip3 install --ignore-installed -r /usr/local/pip-packs/* check_return else source /usr/local/CyberCP/bin/activate From 554165f66de8b658231e0074336ce7533cd7d8b9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 23 Apr 2020 13:09:27 +0500 Subject: [PATCH 072/240] bug fix: upgrade --- cyberpanel_upgrade.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index fff198a95..c4bee1b24 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -244,7 +244,7 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberPanel/bin/activate check_return - pip3 install --ignore-installed -r /usr/local/pip-packs/* + pip3 install --ignore-installed /usr/local/pip-packs/* check_return else source /usr/local/CyberPanel/bin/activate @@ -288,7 +288,7 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate check_return - pip3 install --ignore-installed -r /usr/local/pip-packs/* + pip3 install --ignore-installed /usr/local/pip-packs/* check_return else source /usr/local/CyberCP/bin/activate From faa4458325f7dc914fd71bd093f1ec2b3227222a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 23 Apr 2020 13:44:52 +0500 Subject: [PATCH 073/240] some improvements for ubuntu upgrade --- plogical/upgrade.py | 73 ++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 1b506e90d..38d24f8a8 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1722,37 +1722,40 @@ class Upgrade: Upgrade.executioner(command, 0) else: - command = 'curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import' - subprocess.call(command, shell=True) - command = 'gpg --export ED409DA1 > /etc/apt/trusted.gpg.d/dovecot.gpg' - subprocess.call(command, shell=True) + if Upgrade.installedOutput.find('dovecot-mysql/bionic,now 2:2.3.10-2') == -1: - debPath = '/etc/apt/sources.list.d/dovecot.list' - writeToFile = open(debPath, 'w') - writeToFile.write('deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/bionic bionic main\n') - writeToFile.close() - - try: - command = 'apt update -y' - Upgrade.executioner(command, 0) - except: - pass - - try: - command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' + command = 'curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --import' subprocess.call(command, shell=True) - command = 'dpkg --configure -a' - Upgrade.executioner(command, 0) - - command = 'apt --fix-broken install -y' - Upgrade.executioner(command, 0) - - command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' + command = 'gpg --export ED409DA1 > /etc/apt/trusted.gpg.d/dovecot.gpg' subprocess.call(command, shell=True) - except: - pass + + debPath = '/etc/apt/sources.list.d/dovecot.list' + writeToFile = open(debPath, 'w') + writeToFile.write('deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/bionic bionic main\n') + writeToFile.close() + + try: + command = 'apt update -y' + Upgrade.executioner(command, 0) + except: + pass + + try: + command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' + subprocess.call(command, shell=True) + + command = 'dpkg --configure -a' + Upgrade.executioner(command, 0) + + command = 'apt --fix-broken install -y' + Upgrade.executioner(command, 0) + + command = 'DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --only-upgrade install dovecot-mysql -y' + subprocess.call(command, shell=True) + except: + pass ## Remove Default Password Scheme @@ -1830,11 +1833,13 @@ class Upgrade: command = 'yum install restic -y' Upgrade.executioner(command, 'Install Restic') else: - command = 'apt-get update -y' - Upgrade.executioner(command, 'Install Restic') - command = 'apt-get install restic -y' - Upgrade.executioner(command, 'Install Restic') + if Upgrade.installedOutput.find('restic/bionic,now 0.8') == -1: + command = 'apt-get update -y' + Upgrade.executioner(command, 'Install Restic') + + command = 'apt-get install restic -y' + Upgrade.executioner(command, 'Install Restic') @staticmethod def UpdateMaxSSLCons(): @@ -1975,6 +1980,10 @@ vmail if os.path.exists(Upgrade.CentOSPath): command = 'yum list installed' Upgrade.installedOutput = subprocess.check_output(shlex.split(command)).decode() + else: + command = 'apt list' + Upgrade.installedOutput = subprocess.check_output(shlex.split(command)).decode() + command = 'systemctl stop cpssh' Upgrade.executioner(command, 'fix csf if there', 0) @@ -1983,6 +1992,10 @@ vmail ## Add LSPHP7.4 TO LSWS Ent configs if not os.path.exists('/usr/local/lsws/bin/openlitespeed'): + + if os.path.exists('httpd_config.xml'): + os.remove('httpd_config.xml') + command = 'wget https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/install/litespeed/httpd_config.xml' Upgrade.executioner(command, command, 0) #os.remove('/usr/local/lsws/conf/httpd_config.xml') From 3cedd8efaca5e0f5e698fce7078a1ab8b4a9c512 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 24 Apr 2020 00:02:19 +0500 Subject: [PATCH 074/240] disable certain package updates on centos --- install/install.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/install/install.py b/install/install.py index 665b6b1aa..38bbbed35 100755 --- a/install/install.py +++ b/install/install.py @@ -2054,6 +2054,19 @@ vmail command = 'systemctl enable redis' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + def disablePackegeUpdates(self): + if self.distro == centos: + + mainConfFile = '/etc/yum.conf' + content = 'exclude=MariaDB-client MariaDB-common MariaDB-devel MariaDB-server MariaDB-shared ' \ + 'pdns pdns-backend-mysql dovecot dovecot-mysql postfix3 postfix3-ldap postfix3-mysql ' \ + 'postfix3-pcre restic opendkim libopendkim pure-ftpd ftp\n' + + writeToFile = open(mainConfFile, 'a') + writeToFile.write(content) + writeToFile.close() + + def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') parser.add_argument('publicip', help='Please enter public IP for your VPS or dedicated server.') @@ -2200,6 +2213,7 @@ def main(): checks.enableDisableFTP('on', distro) checks.installCLScripts() + checks.disablePackegeUpdates() logging.InstallLog.writeToFile("CyberPanel installation successfully completed!") From 67c493ca80c48c063c5fcacda10ff7a48767377b Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 24 Apr 2020 09:58:35 +0500 Subject: [PATCH 075/240] disable some centos repos --- install/install.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/install/install.py b/install/install.py index 38bbbed35..2e7ae005b 100755 --- a/install/install.py +++ b/install/install.py @@ -2066,6 +2066,30 @@ vmail writeToFile.write(content) writeToFile.close() + def enableDisableRepos(self): + + if self.distro == centos: + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + + command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo" + preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) + def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') @@ -2213,7 +2237,8 @@ def main(): checks.enableDisableFTP('on', distro) checks.installCLScripts() - checks.disablePackegeUpdates() + #checks.disablePackegeUpdates() + checks.enableDisableRepos() logging.InstallLog.writeToFile("CyberPanel installation successfully completed!") From a43e62d09ff32bf3f056d29e5bc7ae10033fc4d8 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 24 Apr 2020 17:31:02 +0500 Subject: [PATCH 076/240] disable repos at appropriate time --- cyberpanel.sh | 19 +++++++++++++++++++ cyberpanel_upgrade.sh | 19 +++++++++++++++++++ install/install.py | 26 -------------------------- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 900ea24ab..979842083 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1551,3 +1551,22 @@ pip_virtualenv system_tweak main_install + + +### Disable Centos Default Repos + +disable_repos() { + +if [[ $SERVER_OS == "CentOS" ]] ; then + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo +fi + +} + +disable_repos \ No newline at end of file diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index c4bee1b24..89aab1782 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -398,6 +398,25 @@ rm -f /usr/local/composer.sh # clean up +### Disable Centos Default Repos + + +disable_repos() { + +if [[ $SERVER_OS == "CentOS" ]] ; then + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo +fi + +} + +disable_repos + echo "###################################################################" echo " CyberPanel Upgraded " echo "###################################################################" diff --git a/install/install.py b/install/install.py index 2e7ae005b..411534b69 100755 --- a/install/install.py +++ b/install/install.py @@ -2066,31 +2066,6 @@ vmail writeToFile.write(content) writeToFile.close() - def enableDisableRepos(self): - - if self.distro == centos: - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - command = "sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo" - preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - - def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') parser.add_argument('publicip', help='Please enter public IP for your VPS or dedicated server.') @@ -2238,7 +2213,6 @@ def main(): checks.installCLScripts() #checks.disablePackegeUpdates() - checks.enableDisableRepos() logging.InstallLog.writeToFile("CyberPanel installation successfully completed!") From e7e3f2b863c51b9b47219ec3c041f2a5130d64fd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 24 Apr 2020 18:01:44 +0500 Subject: [PATCH 077/240] some changes in installation; --- cyberpanel.sh | 47 ++--------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 979842083..76d8bb009 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -47,21 +47,6 @@ wget -q -O /usr/bin/cyberpanel_utility https://cyberpanel.sh/misc/cyberpanel_uti chmod 700 /usr/bin/cyberpanel_utility fi -#BASH_PATH="/root/.bashrc" -#if ! cat $BASH_PATH | grep -q cyberpanel_utility ; then -#echo -e "\n\ncyberpanel() { -#if [[ \$1 == \"utility\" ]] ; then -#/usr/bin/cyberpanel_utility \${@:2:99} -#elif [[ \$1 == \"help\" ]] ; then -#/usr/bin/cyberpanel_utility --help -#elif [[ \$1 == \"upgrade\" ]] || [[ \$1 == \"update\" ]] ; then -#/usr/bin/cyberpanel_utility --upgrade -#else -#/usr/bin/cyberpanel \"\$@\" -#fi -#}" >> $BASH_PATH -#fi - } watchdog_setup() { @@ -193,6 +178,7 @@ special_change(){ sed -i 's|cyberpanel.sh|'$DOWNLOAD_SERVER'|g' install.py sed -i 's|mirror.cyberpanel.net|'$DOWNLOAD_SERVER'|g' install.py sed -i 's|git clone https://github.com/usmannasir/cyberpanel|echo downloaded|g' install.py + #change to CDN first, regardless country #sed -i 's|http://|https://|g' install.py @@ -257,44 +243,17 @@ if [[ $SERVER_COUNTRY == "CN" ]] ; then sed -i 's|wget -O - https://get.acme.sh \| sh|git clone https://gitee.com/qtwrk/acme.sh.git ; cd acme.sh ; ./acme.sh --install ; cd - ; rm -rf acme.sh|g' install.py sed -i 's|composer.sh|composer_cn.sh|g' install.py sed -i 's|yum -y install http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm|wget -O /etc/yum.repos.d/lux.repo https://'$DOWNLOAD_SERVER'/lux/lux.repo|g' install.py + # global change for CN , regardless provider and system if [[ $SERVER_OS == "CentOS" ]] ; then - DIR=$(pwd) - cd $DIR/mysql - echo "[mariadb-tsinghua] -name = MariaDB -baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.1/centos7-amd64 -gpgkey = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum//RPM-GPG-KEY-MariaDB -gpgcheck = 1" > MariaDB.repo -#above to set mariadb db to Tsinghua repo - cd $DIR sed -i 's|https://www.litespeedtech.com/packages/5.0/lsws-5.3.5-ent-x86_64-linux.tar.gz|https://cyberpanel.sh/packages/5.0/lsws-5.3.5-ent-x86_64-linux.tar.gz|g' installCyberPanel.py - mkdir /root/.config - mkdir /root/.config/pip - cat << EOF > /root/.config/pip/pip.conf -[global] -index-url = https://pypi.tuna.tsinghua.edu.cn/simple -[install] -trusted-host=pypi.tuna.tsinghua.edu.cn -EOF - echo -e "\nSet to Aliyun pip repo..." fi if [[ $SERVER_OS == "Ubuntu" ]] ; then echo $'\n89.208.248.38 rpms.litespeedtech.com\n' >> /etc/hosts echo -e "Mirror server set..." - pip config set global.index-url https://pypi.python.org/simple/ - mkdir /root/.config - mkdir /root/.config/pip - cat << EOF > /root/.config/pip/pip.conf -[global] -index-url = https://pypi.python.org/simple/ -[install] -trusted-host=pypi.python.org -EOF - echo -e "\nSet to Aliyun pip repo..." if [[ $PROVIDER == "Tencent Cloud" ]] ; then #tencent cloud and ubuntu system echo -e "\n Tencent Cloud detected ... bypass default repository" @@ -313,7 +272,6 @@ deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted univer deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse EOF DEBIAN_FRONTEND=noninteractive apt update -y - pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ fi fi fi @@ -400,7 +358,6 @@ fi install_required() { if [[ $CENTOS_8 == "True" ]] ; then - #sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo dnf install zip -y elif [[ $CENTOS_8 == "False" ]] ; then From 39ee501fda0dc54f466c2c3868cfb4700104889e Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Fri, 24 Apr 2020 13:25:49 -0400 Subject: [PATCH 078/240] Add remote backup user support for non root user. This is experimental patch to hopefully solve https://github.com/usmannasir/cyberpanel/issues/165 --- .../templates/backup/backupDestinations.html | 6 + plogical/backupSchedule.py | 18 +- plogical/backupUtilities.py | 201 +++++++++--------- 3 files changed, 117 insertions(+), 108 deletions(-) diff --git a/backup/templates/backup/backupDestinations.html b/backup/templates/backup/backupDestinations.html index 06a97e21b..689550ccf 100755 --- a/backup/templates/backup/backupDestinations.html +++ b/backup/templates/backup/backupDestinations.html @@ -48,6 +48,12 @@ +
+ +
+ +
+
diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index cfcab181f..48d9a1ef2 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -135,7 +135,7 @@ class backupSchedule: return 0, str(msg) @staticmethod - def createBackup(virtualHost, ipAddress, backupLogPath , port): + def createBackup(virtualHost, ipAddress, backupLogPath , port='22', user='root'): try: backupSchedule.remoteBackupLogging(backupLogPath, "Preparing to create backup for: " + virtualHost) @@ -152,7 +152,7 @@ class backupSchedule: backupSchedule.remoteBackupLogging(backupLogPath, "Preparing to send backup for: " + virtualHost +" to " + ipAddress) - backupSchedule.sendBackup(backupPath+".tar.gz", ipAddress, backupLogPath, port) + backupSchedule.sendBackup(backupPath+".tar.gz", ipAddress, backupLogPath, port, user) backupSchedule.remoteBackupLogging(backupLogPath, "Backup for: " + virtualHost + " is sent to " + ipAddress) @@ -180,7 +180,7 @@ class backupSchedule: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [backupSchedule.createBackup]") @staticmethod - def sendBackup(backupPath, IPAddress, backupLogPath , port): + def sendBackup(backupPath, IPAddress, backupLogPath , port='22', user='root'): try: ## IPAddress of local server @@ -193,7 +193,7 @@ class backupSchedule: ## writeToFile = open(backupLogPath, "a") - command = "sudo scp -o StrictHostKeyChecking=no -P "+port+" -i /root/.ssh/cyberpanel " + backupPath + " root@"+IPAddress+":/home/backup/" + ipAddressLocal + "/" + time.strftime("%a-%b") + "/" + command = "sudo scp -o StrictHostKeyChecking=no -P "+port+" -i /root/.ssh/cyberpanel " + backupPath + " " + user + "@" + IPAddress+":~/backup/" + ipAddressLocal + "/" + time.strftime("%a-%b") + "/" subprocess.call(shlex.split(command), stdout=writeToFile) ## Remove backups already sent to remote destinations @@ -222,6 +222,10 @@ class backupSchedule: data = open(destinations,'r').readlines() ipAddress = data[0].strip("\n") port = data[1].strip("\n") + user = data[2].strip("\n") + + # Set the user to root if not specified aka empty + user = user if bool(user) is not False else 'root' ## IPAddress of local server @@ -241,16 +245,16 @@ class backupSchedule: "Connection to: " + ipAddress + " Failed, please resetup this destination from CyberPanel, aborting.") return 0 else: - ## Create backup dir on remote server + ## Create backup dir on remote server in ~/backup - command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel root@" + ipAddress + " mkdir -p /home/backup/" + ipAddressLocal + "/" + time.strftime( + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + ipAddress + " mkdir -p ~/backup/" + ipAddressLocal + "/" + time.strftime( "%a-%b") subprocess.call(shlex.split(command)) pass for virtualHost in os.listdir("/home"): if match(r'^[a-zA-Z0-9-]*[a-zA-Z0-9-]{0,61}[a-zA-Z0-9-](?:\.[a-zA-Z0-9-]{2,})+$', virtualHost, M | I): - backupSchedule.createBackup(virtualHost, ipAddress, backupLogPath, port) + backupSchedule.createBackup(virtualHost, ipAddress, backupLogPath, port, user) backupSchedule.remoteBackupLogging(backupLogPath, "Remote backup job completed.\n") diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 945ae845d..31a299310 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -1,6 +1,8 @@ -import os,sys +import os, sys + sys.path.append('/usr/local/CyberCP') import django + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") try: django.setup() @@ -10,13 +12,14 @@ import pexpect from plogical import CyberCPLogFileWriter as logging import subprocess import shlex -from shutil import make_archive,rmtree +from shutil import make_archive, rmtree from plogical import mysqlUtilities import tarfile from multiprocessing import Process import signal from plogical.installUtilities import installUtilities import argparse + try: from plogical.virtualHostUtilities import virtualHostUtilities from plogical.sslUtilities import sslUtilities @@ -32,6 +35,7 @@ from shutil import copy from distutils.dir_util import copy_tree from random import randint from plogical.processUtilities import ProcessUtilities + try: from websiteFunctions.models import Websites, ChildDomains, Backups from databases.models import Databases @@ -45,12 +49,13 @@ except: VERSION = '2.0' BUILD = 1 + ## I am not the monster that you think I am.. class backupUtilities: Server_root = "/usr/local/lsws" - completeKeyPath = "/home/cyberpanel/.ssh" + completeKeyPath = "/home/cyberpanel/.ssh" destinationsPath = "/home/cyberpanel/destinations" licenseKey = '/usr/local/lsws/conf/license.key' @@ -190,11 +195,9 @@ class backupUtilities: except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile( 'While creating backup for %s, we failed to backup database %s. Error message: %s' % ( - backupDomain, items.dbName, str(msg))) + backupDomain, items.dbName, str(msg))) continue - - databaseXML = Element('database') child = SubElement(databaseXML, 'dbName') @@ -276,7 +279,6 @@ class backupUtilities: ## Email meta generated! - def prettify(elem): """Return a pretty-printed XML string for the Element. """ @@ -284,8 +286,6 @@ class backupUtilities: reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ") - - ## /home/example.com/backup/backup-example.com-02.13.2018_10-24-52/meta.xml -- metaPath metaPath = '/tmp/%s' % (str(randint(1000, 9999))) @@ -298,22 +298,21 @@ class backupUtilities: ## meta generated - newBackup = Backups(website=website, fileName=backupName, date=time.strftime("%m.%d.%Y_%H-%M-%S"), size=0, status=1) newBackup.save() logging.CyberCPLogFileWriter.statusWriter(status, 'Meta data is ready..') - return 1,'None', metaPath + return 1, 'None', metaPath except BaseException as msg: logging.CyberCPLogFileWriter.statusWriter(status, "%s [207][5009]" % (str(msg))) - return 0,str(msg) + return 0, str(msg) @staticmethod - def startBackup(tempStoragePath, backupName, backupPath, metaPath = None): + def startBackup(tempStoragePath, backupName, backupPath, metaPath=None): try: ## /home/example.com/backup/backup-example.com-02.13.2018_10-24-52 -- tempStoragePath @@ -327,12 +326,12 @@ class backupUtilities: writeToFile.writelines(str(os.getpid())) writeToFile.close() - backupFileNamePath = os.path.join(backupPath,"backupFileName") + backupFileNamePath = os.path.join(backupPath, "backupFileName") logging.CyberCPLogFileWriter.statusWriter(backupFileNamePath, backupName) ##### - status = os.path.join(backupPath,'status') + status = os.path.join(backupPath, 'status') logging.CyberCPLogFileWriter.statusWriter(status, "Making archive of home directory.\n") @@ -340,7 +339,7 @@ class backupUtilities: ## /home/example.com/backup/backup-example.com-02.13.2018_10-24-52 -- tempStoragePath - metaPathInBackup = os.path.join(tempStoragePath,'meta.xml') + metaPathInBackup = os.path.join(tempStoragePath, 'meta.xml') if metaPath != None: writeToFile = open(metaPathInBackup, 'w') @@ -349,7 +348,6 @@ class backupUtilities: backupMetaData = ElementTree.parse(metaPathInBackup) - ##### Making archive of home directory domainName = backupMetaData.find('masterDomain').text @@ -366,10 +364,9 @@ class backupUtilities: ## Stop making archive of document_root and copy instead - copy_tree('/home/%s/public_html' % domainName, '%s/%s' % (tempStoragePath, 'public_html')) - #make_archive(os.path.join(tempStoragePath,"public_html"), 'gztar', os.path.join("/home",domainName,"public_html")) + # make_archive(os.path.join(tempStoragePath,"public_html"), 'gztar', os.path.join("/home",domainName,"public_html")) ## @@ -378,7 +375,7 @@ class backupUtilities: except BaseException as msg: try: - os.remove(os.path.join(backupPath,backupName+".tar.gz")) + os.remove(os.path.join(backupPath, backupName + ".tar.gz")) except: pass @@ -388,8 +385,8 @@ class backupUtilities: pass status = os.path.join(backupPath, 'status') - logging.CyberCPLogFileWriter.statusWriter(status, "Aborted, "+ str(msg) + ".[365] [5009]") - print(("Aborted, "+ str(msg) + ".[365] [5009]")) + logging.CyberCPLogFileWriter.statusWriter(status, "Aborted, " + str(msg) + ".[365] [5009]") + print(("Aborted, " + str(msg) + ".[365] [5009]")) os.remove(pidFile) @@ -462,7 +459,8 @@ class backupUtilities: domainName = backupMetaData.find('masterDomain').text - if os.path.islink(status) or os.path.islink(tempStoragePath or os.path.islink(backupPath)) or os.path.islink(metaPath): + if os.path.islink(status) or os.path.islink(tempStoragePath or os.path.islink(backupPath)) or os.path.islink( + metaPath): logging.CyberCPLogFileWriter.writeToFile('symlinked.') logging.CyberCPLogFileWriter.statusWriter(status, 'Symlink attack. [365][5009]') return 0 @@ -482,7 +480,7 @@ class backupUtilities: rmtree(tempStoragePath) ### - backupFileNamePath = os.path.join(backupPath,"backupFileName") + backupFileNamePath = os.path.join(backupPath, "backupFileName") fileName = open(backupFileNamePath, 'r').read() backupObs = Backups.objects.filter(fileName=fileName) @@ -492,27 +490,27 @@ class backupUtilities: for items in backupObs: items.status = 1 items.size = str(int(float( - os.path.getsize(os.path.join(backupPath,backupName+".tar.gz"))) / ( - 1024.0 * 1024.0))) + "MB" + os.path.getsize(os.path.join(backupPath, backupName + ".tar.gz"))) / ( + 1024.0 * 1024.0))) + "MB" items.save() except: for items in backupObs: items.status = 1 items.size = str(int(float( - os.path.getsize(os.path.join(backupPath,backupName+".tar.gz"))) / ( - 1024.0 * 1024.0))) + "MB" + os.path.getsize(os.path.join(backupPath, backupName + ".tar.gz"))) / ( + 1024.0 * 1024.0))) + "MB" items.save() - command = 'chmod 600 %s' % (os.path.join(backupPath,backupName+".tar.gz")) + command = 'chmod 600 %s' % (os.path.join(backupPath, backupName + ".tar.gz")) ProcessUtilities.executioner(command) logging.CyberCPLogFileWriter.statusWriter(status, "Completed\n") os.remove(pidFile) @staticmethod - def initiateBackup(tempStoragePath,backupName,backupPath): + def initiateBackup(tempStoragePath, backupName, backupPath): try: - p = Process(target=backupUtilities.startBackup, args=(tempStoragePath,backupName,backupPath,)) + p = Process(target=backupUtilities.startBackup, args=(tempStoragePath, backupName, backupPath,)) p.start() pid = open(backupPath + 'pid', "w") pid.write(str(p.pid)) @@ -581,14 +579,11 @@ class backupUtilities: if Websites.objects.filter(domain=domain).count() > 0: raise BaseException('This website already exists.') - if ChildDomains.objects.filter(domain=domain).count() > 0: raise BaseException("This website already exists as child domain.") - ####### Pre-creation checks ends - ## Create Configurations result = virtualHostUtilities.createVirtualHost(domain, siteUser.email, phpSelection, externalApp, 0, 1, 0, @@ -623,7 +618,6 @@ class backupUtilities: zone = DNS.getZoneObject(domain) for dnsrecord in dnsrecords: - recordType = dnsrecord.find('type').text value = dnsrecord.find('name').text content = dnsrecord.find('content').text @@ -631,8 +625,7 @@ class backupUtilities: DNS.createDNSRecord(zone, value, recordType, content, prio, 3600) - - return 1,'None' + return 1, 'None' except BaseException as msg: return 0, str(msg) @@ -643,28 +636,28 @@ class backupUtilities: if dir == "CyberPanelRestore": backupFileName = backupName.strip(".tar.gz") - completPath = os.path.join("/home","backup",backupFileName) ## without extension - originalFile = os.path.join("/home","backup",backupName) ## with extension + completPath = os.path.join("/home", "backup", backupFileName) ## without extension + originalFile = os.path.join("/home", "backup", backupName) ## with extension elif dir == 'CLI': completPath = backupName.strip(".tar.gz") ## without extension originalFile = backupName ## with extension else: backupFileName = backupName.strip(".tar.gz") - completPath = "/home/backup/transfer-"+str(dir)+"/"+backupFileName ## without extension - originalFile = "/home/backup/transfer-"+str(dir)+"/"+backupName ## with extension + completPath = "/home/backup/transfer-" + str(dir) + "/" + backupFileName ## without extension + originalFile = "/home/backup/transfer-" + str(dir) + "/" + backupName ## with extension - pathToCompressedHome = os.path.join(completPath,"public_html.tar.gz") + pathToCompressedHome = os.path.join(completPath, "public_html.tar.gz") if not os.path.exists(completPath): os.mkdir(completPath) ## Writing pid of restore process - pid = os.path.join(completPath,'pid') + pid = os.path.join(completPath, 'pid') logging.CyberCPLogFileWriter.statusWriter(pid, str(os.getpid())) - status = os.path.join(completPath,'status') + status = os.path.join(completPath, 'status') logging.CyberCPLogFileWriter.statusWriter(status, "Extracting Main Archive!") ## Converting /home/backup/backup-example.com-02.13.2018_10-24-52.tar.gz -> /home/backup/backup-example.com-02.13.2018_10-24-52 @@ -681,7 +674,6 @@ class backupUtilities: backupMetaData = ElementTree.parse(os.path.join(completPath, "meta.xml")) masterDomain = backupMetaData.find('masterDomain').text - twoPointO = 0 try: version = backupMetaData.find('VERSION').text @@ -713,10 +705,10 @@ class backupUtilities: logging.CyberCPLogFileWriter.writeToFile('%s. [555:startRestore]' % (str(msg))) else: - logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + result[1] + ". Not able to create Account, Databases and DNS Records, aborting. [575][5009]") + logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + result[ + 1] + ". Not able to create Account, Databases and DNS Records, aborting. [575][5009]") return 0 - ########### Creating child/sub/addon/parked domains logging.CyberCPLogFileWriter.statusWriter(status, "Creating Child Domains!") @@ -724,7 +716,7 @@ class backupUtilities: ## Reading meta file to create subdomains externalApp = backupMetaData.find('externalApp').text - websiteHome = os.path.join("/home",masterDomain,"public_html") + websiteHome = os.path.join("/home", masterDomain, "public_html") ### Restoring Child Domains if any. @@ -747,7 +739,8 @@ class backupUtilities: phpSelection = childDomain.find('phpSelection').text path = childDomain.find('path').text - retValues = virtualHostUtilities.createDomain(masterDomain, domain, phpSelection, path, 0, 0, 0, 'admin', 0) + retValues = virtualHostUtilities.createDomain(masterDomain, domain, phpSelection, path, 0, 0, 0, + 'admin', 0) if retValues[0] == 1: if os.path.exists(websiteHome): @@ -780,7 +773,8 @@ class backupUtilities: except: pass except: - logging.CyberCPLogFileWriter.writeToFile('While restoring backup we had minor issues for rebuilding vhost conf for: ' + domain + '. However this will be auto healed.') + logging.CyberCPLogFileWriter.writeToFile( + 'While restoring backup we had minor issues for rebuilding vhost conf for: ' + domain + '. However this will be auto healed.') if float(version) > 2.0 or float(build) > 0: if path.find('/home/%s/public_html' % masterDomain) == -1: @@ -789,11 +783,12 @@ class backupUtilities: continue else: logging.CyberCPLogFileWriter.writeToFile('Error domain %s' % (domain)) - logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + retValues[1] + ". Not able to create child domains, aborting. [635][5009]") + logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + retValues[ + 1] + ". Not able to create child domains, aborting. [635][5009]") return 0 except BaseException as msg: - status = open(os.path.join(completPath,'status'), "w") - status.write("Error Message: " + str(msg) +". Not able to create child domains, aborting. [638][5009]") + status = open(os.path.join(completPath, 'status'), "w") + status.write("Error Message: " + str(msg) + ". Not able to create child domains, aborting. [638][5009]") status.close() logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [startRestore]") return 0 @@ -824,7 +819,8 @@ class backupUtilities: if result[0] == 0: raise BaseException(result[1]) except BaseException as msg: - logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + str(msg) +". Not able to create email accounts, aborting. [671][5009]") + logging.CyberCPLogFileWriter.statusWriter(status, "Error Message: " + str( + msg) + ". Not able to create email accounts, aborting. [671][5009]") logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [startRestore]") return 0 @@ -865,7 +861,7 @@ class backupUtilities: try: pathToCompressedEmails = os.path.join(completPath, masterDomain + ".tar.gz") - emailHome = os.path.join("/home","vmail",masterDomain) + emailHome = os.path.join("/home", "vmail", masterDomain) tar = tarfile.open(pathToCompressedEmails) tar.extractall(emailHome) @@ -912,7 +908,7 @@ class backupUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [startRestore]") @staticmethod - def initiateRestore(backupName,dir): + def initiateRestore(backupName, dir): try: p = Process(target=backupUtilities.startRestore, args=(backupName, dir,)) p.start() @@ -920,7 +916,7 @@ class backupUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [initiateRestore]") @staticmethod - def sendKey(IPAddress, password,port): + def sendKey(IPAddress, password, port='22', user='root'): try: expectation = [] @@ -929,7 +925,7 @@ class backupUtilities: expectation.append("Permission denied") expectation.append("100%") - command = "scp -o StrictHostKeyChecking=no -P "+ port +" /root/.ssh/cyberpanel.pub root@" + IPAddress + ":/root/.ssh/authorized_keys" + command = "scp -o StrictHostKeyChecking=no -P " + port + " /root/.ssh/cyberpanel.pub " + user + "@" + IPAddress + ":~/.ssh/authorized_keys" setupKeys = pexpect.spawn(command, timeout=3) index = setupKeys.expect(expectation) @@ -958,13 +954,13 @@ class backupUtilities: return [0, "TIMEOUT [sendKey]"] except pexpect.EOF as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") - return [0, "EOF [sendKey]"] + return [0, "EOF [sendKey]"] except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, str(msg) + " [sendKey]"] @staticmethod - def setupSSHKeys(IPAddress, password,port): + def setupSSHKeys(IPAddress, password, port='22', user='root'): try: ## Checking for host verification @@ -974,7 +970,7 @@ class backupUtilities: pass else: logging.CyberCPLogFileWriter.writeToFile("Host is Down.") - #return [0,"Host is Down."] + # return [0,"Host is Down."] expectation = [] expectation.append("password:") @@ -982,7 +978,7 @@ class backupUtilities: expectation.append("Permission denied") expectation.append("File exists") - command = "ssh -o StrictHostKeyChecking=no -p "+ port +" root@"+IPAddress+' "mkdir /root/.ssh || rm -f /root/.ssh/temp && rm -f /root/.ssh/authorized_temp && cp /root/.ssh/authorized_keys /root/.ssh/temp"' + command = "ssh -o StrictHostKeyChecking=no -p " + port + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp"' setupKeys = pexpect.spawn(command, timeout=3) index = setupKeys.expect(expectation) @@ -1010,18 +1006,18 @@ class backupUtilities: index = setupKeys.expect(expectation) if index == 0: - return [0,"Wrong Password!"] + return [0, "Wrong Password!"] elif index == 1: return [0, "Wrong Password!"] elif index == 2: setupKeys.wait() - sendKey = backupUtilities.sendKey(IPAddress, password, port) + sendKey = backupUtilities.sendKey(IPAddress, password, port, user) if sendKey[0] == 1: return [1, "None"] else: - return [0,sendKey[1]] + return [0, sendKey[1]] except pexpect.TIMEOUT as msg: @@ -1040,7 +1036,7 @@ class backupUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[checkIfHostIsUp]") @staticmethod - def checkConnection(IPAddress): + def checkConnection(IPAddress, password, port='22', user='root'): try: try: @@ -1057,13 +1053,16 @@ class backupUtilities: expectation.append(pexpect.EOF) expectation.append(pexpect.TIMEOUT) - checkConn = pexpect.spawn("sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p "+ port+" root@"+IPAddress, timeout=3) + checkConn = pexpect.spawn( + "sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p " + port + user + "@" + IPAddress, + timeout=3) index = checkConn.expect(expectation) if index == 0: subprocess.call(['kill', str(checkConn.pid)]) - logging.CyberCPLogFileWriter.writeToFile("Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress) - return [0,"Remote Server is not able to authenticate for transfer to initiate."] + logging.CyberCPLogFileWriter.writeToFile( + "Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress) + return [0, "Remote Server is not able to authenticate for transfer to initiate."] elif index == 1: subprocess.call(['kill', str(checkConn.pid)]) logging.CyberCPLogFileWriter.writeToFile( @@ -1080,13 +1079,13 @@ class backupUtilities: return [1, "None"] except pexpect.TIMEOUT as msg: - logging.CyberCPLogFileWriter.writeToFile("Timeout "+IPAddress+ " [checkConnection]") + logging.CyberCPLogFileWriter.writeToFile("Timeout " + IPAddress + " [checkConnection]") return [0, "371 Timeout while making connection to this server [checkConnection]"] except pexpect.EOF as msg: - logging.CyberCPLogFileWriter.writeToFile("EOF "+IPAddress+ "[checkConnection]") + logging.CyberCPLogFileWriter.writeToFile("EOF " + IPAddress + "[checkConnection]") return [0, "374 Remote Server is not able to authenticate for transfer to initiate. [checkConnection]"] except BaseException as msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg)+" " +IPAddress+ " [checkConnection]") + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " " + IPAddress + " [checkConnection]") return [0, "377 Remote Server is not able to authenticate for transfer to initiate. [checkConnection]"] @staticmethod @@ -1094,7 +1093,7 @@ class backupUtilities: try: backupUtilities.host_key_verification(IPAddress) - password = "hello" ## dumb password, not used anywhere. + password = "hello" ## dumb password, not used anywhere. expectation = [] @@ -1116,7 +1115,6 @@ class backupUtilities: expectation.append("password:") expectation.append(pexpect.EOF) - innerIndex = setupSSHKeys.expect(expectation) if innerIndex == 0: @@ -1148,25 +1146,25 @@ class backupUtilities: except pexpect.TIMEOUT as msg: logging.CyberCPLogFileWriter.writeToFile("Timeout [verifyHostKey]") - return [0,"Timeout [verifyHostKey]"] + return [0, "Timeout [verifyHostKey]"] except pexpect.EOF as msg: logging.CyberCPLogFileWriter.writeToFile("EOF [verifyHostKey]") - return [0,"EOF [verifyHostKey]"] + return [0, "EOF [verifyHostKey]"] except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [verifyHostKey]") - return [0,str(msg)+" [verifyHostKey]"] + return [0, str(msg) + " [verifyHostKey]"] @staticmethod - def createBackupDir(IPAddress,port): + def createBackupDir(IPAddress, port='22', user='root'): try: - command = "sudo ssh -o StrictHostKeyChecking=no -p "+ port +" -i /root/.ssh/cyberpanel root@"+IPAddress+" mkdir /home/backup" + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + " mkdir /home/backup" subprocess.call(shlex.split(command)) - command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel root@" + IPAddress + ' "cat /root/.ssh/authorized_keys /root/.ssh/temp > /root/.ssh/authorized_temp"' + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_keys ~/.ssh/temp > ~/.ssh/authorized_temp"' subprocess.call(shlex.split(command)) - command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel root@" + IPAddress + ' "cat /root/.ssh/authorized_temp > /root/.ssh/authorized_keys"' + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_temp > ~/.ssh/authorized_keys"' subprocess.call(shlex.split(command)) except BaseException as msg: @@ -1271,10 +1269,8 @@ def submitBackupCreation(tempStoragePath, backupName, backupPath, backupDomain): writeToFile.close() return 0 - result = backupUtilities.prepareBackupMeta(backupDomain, backupName, tempStoragePath, backupPath) - if result[0] == 0: writeToFile = open(schedulerPath, 'w') writeToFile.writelines('error') @@ -1287,7 +1283,8 @@ def submitBackupCreation(tempStoragePath, backupName, backupPath, backupDomain): execPath = "sudo nice -n 10 /usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py" execPath = execPath + " startBackup --tempStoragePath " + tempStoragePath + " --backupName " \ - + backupName + " --backupPath " + backupPath + ' --backupDomain ' + backupDomain + ' --metaPath %s' % (result[2]) + + backupName + " --backupPath " + backupPath + ' --backupDomain ' + backupDomain + ' --metaPath %s' % ( + result[2]) output = ProcessUtilities.outputExecutioner(execPath, website.externalApp) if output.find('[5009') > -1: @@ -1324,7 +1321,7 @@ def submitBackupCreation(tempStoragePath, backupName, backupPath, backupDomain): execPath = "sudo nice -n 10 /usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py" execPath = execPath + " BackupRoot --tempStoragePath " + tempStoragePath + " --backupName " \ + backupName + " --backupPath " + backupPath + ' --backupDomain ' + backupDomain + ' --metaPath %s' % ( - result[2]) + result[2]) ProcessUtilities.executioner(execPath, 'root') else: @@ -1340,7 +1337,8 @@ def submitBackupCreation(tempStoragePath, backupName, backupPath, backupDomain): logging.CyberCPLogFileWriter.writeToFile( str(msg) + " [submitBackupCreation]") -def cancelBackupCreation(backupCancellationDomain,fileName): + +def cancelBackupCreation(backupCancellationDomain, fileName): try: path = "/home/" + backupCancellationDomain + "/backup/pid" @@ -1372,9 +1370,10 @@ def cancelBackupCreation(backupCancellationDomain,fileName): except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile( str(msg) + " [cancelBackupCreation]") - print("0,"+str(msg)) + print("0," + str(msg)) -def submitRestore(backupFile,dir): + +def submitRestore(backupFile, dir): try: p = Process(target=backupUtilities.startRestore, args=(backupFile, dir,)) @@ -1385,13 +1384,14 @@ def submitRestore(backupFile,dir): except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile( str(msg) + " [cancelBackupCreation]") - print("0,"+str(msg)) + print("0," + str(msg)) -def submitDestinationCreation(ipAddress, password, port): - setupKeys = backupUtilities.setupSSHKeys(ipAddress, password, port) + +def submitDestinationCreation(ipAddress, password, port='22', user='root'): + setupKeys = backupUtilities.setupSSHKeys(ipAddress, password, port, user) if setupKeys[0] == 1: - backupUtilities.createBackupDir(ipAddress, port) + backupUtilities.createBackupDir(ipAddress, port, user) print("1,None") else: print(setupKeys[1]) @@ -1409,8 +1409,8 @@ def getConnectionStatus(ipAddress): except BaseException as msg: print(str(msg)) -def main(): +def main(): parser = argparse.ArgumentParser(description='CyberPanel Installer') parser.add_argument('function', help='Specific a function to call!') parser.add_argument('--tempStoragePath', help='') @@ -1424,6 +1424,7 @@ def main(): parser.add_argument('--ipAddress', help='') parser.add_argument('--password', help='') parser.add_argument('--port', help='') + parser.add_argument('--user', help='') ## backup cancellation arguments @@ -1435,19 +1436,16 @@ def main(): parser.add_argument('--backupFile', help='') parser.add_argument('--dir', help='') - - - args = parser.parse_args() if args.function == "submitBackupCreation": - submitBackupCreation(args.tempStoragePath,args.backupName,args.backupPath, args.backupDomain) + submitBackupCreation(args.tempStoragePath, args.backupName, args.backupPath, args.backupDomain) elif args.function == "cancelBackupCreation": - cancelBackupCreation(args.backupCancellationDomain,args.fileName) + cancelBackupCreation(args.backupCancellationDomain, args.fileName) elif args.function == "submitRestore": - submitRestore(args.backupFile,args.dir) + submitRestore(args.backupFile, args.dir) elif args.function == "submitDestinationCreation": - submitDestinationCreation(args.ipAddress, args.password, args.port) + submitDestinationCreation(args.ipAddress, args.password, args.port, args.user) elif args.function == "getConnectionStatus": getConnectionStatus(args.ipAddress) elif args.function == "startBackup": @@ -1455,5 +1453,6 @@ def main(): elif args.function == "BackupRoot": backupUtilities.BackupRoot(args.tempStoragePath, args.backupName, args.backupPath, args.metaPath) + if __name__ == "__main__": - main() \ No newline at end of file + main() From dddefd7e444d7aaa9ccf848468921ee90e88d503 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 25 Apr 2020 11:25:45 +0500 Subject: [PATCH 079/240] decode url --- filemanager/views.py | 3 ++- plogical/test.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/filemanager/views.py b/filemanager/views.py index cf91e7d42..d33899d04 100755 --- a/filemanager/views.py +++ b/filemanager/views.py @@ -64,8 +64,9 @@ def downloadFile(request): try: userID = request.session['userID'] admin = Administrator.objects.get(pk=userID) + import urllib.parse - fileToDownload = request.GET.get('fileToDownload') + fileToDownload = urllib.parse.unquote(request.GET.get('fileToDownload')) domainName = request.GET.get('domainName') currentACL = ACLManager.loadedACL(userID) diff --git a/plogical/test.py b/plogical/test.py index e69de29bb..8278a4ee9 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -0,0 +1,3 @@ +import urllib.parse +encodedStr = 'ville.laprairie.qc.ca&fileToDownload=/home/ville.laprairie.qc.ca/public_html/app/uploads/2019/05/2019-05-16_Terre-contamine%CC%81e-sur-Goyer-150x150.jpg' +print(urllib.parse.unquote(encodedStr)) \ No newline at end of file From 564f53309da14111619501eb43c6bc3f6e0bd91d Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Sat, 25 Apr 2020 03:02:53 -0400 Subject: [PATCH 080/240] Fix user html. add user variable to backup.js --- backup/static/backup/backup.js | 3 ++- backup/templates/backup/backupDestinations.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backup/static/backup/backup.js b/backup/static/backup/backup.js index 9c158422b..a41fffb41 100755 --- a/backup/static/backup/backup.js +++ b/backup/static/backup/backup.js @@ -416,7 +416,7 @@ app.controller('restoreWebsiteControl', function ($scope, $http, $timeout) { }); -//*** Resotre site ends here ***/// +//*** Restore site ends here ***/// ///** Backup Destination ***// @@ -448,6 +448,7 @@ app.controller('backupDestinations', function ($scope, $http, $timeout) { var data = { IPAddress: $scope.IPAddress, password: $scope.password, + user: $scope.user, backupSSHPort: $scope.backupSSHPort, }; diff --git a/backup/templates/backup/backupDestinations.html b/backup/templates/backup/backupDestinations.html index 689550ccf..9667803ed 100755 --- a/backup/templates/backup/backupDestinations.html +++ b/backup/templates/backup/backupDestinations.html @@ -51,7 +51,7 @@
- +
From 1ab847f28dae78de1e1de5ace5cff4aa4b1b8029 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 25 Apr 2020 12:43:54 +0500 Subject: [PATCH 081/240] bug fix: file download --- filemanager/static/filemanager/js/fileManager.js | 1 - filemanager/views.py | 4 +++- plogical/test.py | 3 --- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/filemanager/static/filemanager/js/fileManager.js b/filemanager/static/filemanager/js/fileManager.js index 725224dbb..19e175118 100755 --- a/filemanager/static/filemanager/js/fileManager.js +++ b/filemanager/static/filemanager/js/fileManager.js @@ -1479,7 +1479,6 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader, // Download files $scope.downloadFile = function () { - url = "/filemanager/downloadFile"; var downloadURL = $scope.currentPath + "/" + allFilesAndFolders[0]; window.location.href = url + '?domainName=' + domainName + '&fileToDownload=' + downloadURL; diff --git a/filemanager/views.py b/filemanager/views.py index d33899d04..6edc740ea 100755 --- a/filemanager/views.py +++ b/filemanager/views.py @@ -66,7 +66,9 @@ def downloadFile(request): admin = Administrator.objects.get(pk=userID) import urllib.parse - fileToDownload = urllib.parse.unquote(request.GET.get('fileToDownload')) + fileToDownload = request.build_absolute_uri().split('fileToDownload')[1][1:] + fileToDownload = urllib.parse.unquote(fileToDownload) + domainName = request.GET.get('domainName') currentACL = ACLManager.loadedACL(userID) diff --git a/plogical/test.py b/plogical/test.py index 8278a4ee9..e69de29bb 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -1,3 +0,0 @@ -import urllib.parse -encodedStr = 'ville.laprairie.qc.ca&fileToDownload=/home/ville.laprairie.qc.ca/public_html/app/uploads/2019/05/2019-05-16_Terre-contamine%CC%81e-sur-Goyer-150x150.jpg' -print(urllib.parse.unquote(encodedStr)) \ No newline at end of file From 59bbe85eb5918df8e04c5aa1f46f7f63bad1bedd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 25 Apr 2020 14:17:52 +0500 Subject: [PATCH 082/240] update to cdn url --- install/installCyberPanel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 4172b674f..a33421611 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -334,10 +334,10 @@ class InstallCyberPanel: command = 'DEBIAN_FRONTEND=noninteractive apt install pure-ftpd-mysql -y' os.system(command) - command = 'wget https://ubuntu.cyberpanel.net/pool/main/p/pure-ftpd/pure-ftpd-common_1.0.47-3_all.deb' + command = 'wget https://rep.cyberpanel.net/pure-ftpd-common_1.0.47-3_all.deb' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - command = 'wget https://ubuntu.cyberpanel.net/pool/main/p/pure-ftpd/pure-ftpd-mysql_1.0.47-3_amd64.deb' + command = 'wget https://rep.cyberpanel.net/pure-ftpd-mysql_1.0.47-3_amd64.deb' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) command = 'dpkg --install --force-confold pure-ftpd-common_1.0.47-3_all.deb' From 7640db3006ba4fa53dd7507aac2f38aeb4965f32 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Sat, 25 Apr 2020 06:48:08 -0400 Subject: [PATCH 083/240] Fix command spacing --- plogical/backupUtilities.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 31a299310..9471fbc4b 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -978,7 +978,7 @@ class backupUtilities: expectation.append("Permission denied") expectation.append("File exists") - command = "ssh -o StrictHostKeyChecking=no -p " + port + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp"' + command = "ssh -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp"' setupKeys = pexpect.spawn(command, timeout=3) index = setupKeys.expect(expectation) @@ -1043,6 +1043,7 @@ class backupUtilities: destinations = backupUtilities.destinationsPath data = open(destinations, 'r').readlines() port = data[1].strip("\n") + user = data[2].strip("\n") except: port = "22" @@ -1054,7 +1055,7 @@ class backupUtilities: expectation.append(pexpect.TIMEOUT) checkConn = pexpect.spawn( - "sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p " + port + user + "@" + IPAddress, + "sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress, timeout=3) index = checkConn.expect(expectation) @@ -1158,7 +1159,7 @@ class backupUtilities: def createBackupDir(IPAddress, port='22', user='root'): try: - command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + " mkdir /home/backup" + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + " mkdir ~/backup" subprocess.call(shlex.split(command)) command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_keys ~/.ssh/temp > ~/.ssh/authorized_temp"' From a2a0d62ffe6852191b3f8aae5c565e8c18a8c2a8 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Sat, 25 Apr 2020 07:24:26 -0400 Subject: [PATCH 084/240] Fix command spacing --- plogical/backupUtilities.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 9471fbc4b..886e0f67f 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -1090,7 +1090,7 @@ class backupUtilities: return [0, "377 Remote Server is not able to authenticate for transfer to initiate. [checkConnection]"] @staticmethod - def verifyHostKey(IPAddress): + def verifyHostKey(IPAddress, port='22', user='root'): try: backupUtilities.host_key_verification(IPAddress) @@ -1101,7 +1101,7 @@ class backupUtilities: expectation.append("continue connecting (yes/no)?") expectation.append("password:") - setupSSHKeys = pexpect.spawn("ssh cyberpanel@" + IPAddress, timeout=3) + setupSSHKeys = pexpect.spawn("ssh -p " + port + user + "@" + IPAddress, timeout=3) index = setupSSHKeys.expect(expectation) From b469aa50823f401eeacb42f939db3e5996d67bbf Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 12:15:41 +0500 Subject: [PATCH 085/240] bug fix: cloudlinux fetch users --- CLScript/CloudLinuxUsers.py | 75 +++++++------- CPCent7repo.json | 192 +++++++++++++++++++++++++++++++++++ install/installCyberPanel.py | 2 +- 3 files changed, 232 insertions(+), 37 deletions(-) create mode 100644 CPCent7repo.json diff --git a/CLScript/CloudLinuxUsers.py b/CLScript/CloudLinuxUsers.py index 52c3dd8c9..bdc984655 100755 --- a/CLScript/CloudLinuxUsers.py +++ b/CLScript/CloudLinuxUsers.py @@ -79,48 +79,51 @@ class CloudLinuxUsers(CLMain): def fetchJson(self, websites): users = [] for webs in websites: - itemPackage = webs.package - package = {'name': itemPackage.packageName, 'owner': webs.externalApp} + try: + itemPackage = webs.package + package = {'name': itemPackage.packageName, 'owner': webs.externalApp} - user = {} + user = {} - if self.id: - user['id'] = pwd.getpwnam(webs.externalApp).pw_uid - - if self.un: - user['username'] = webs.externalApp - - if self.ow: - user['owner'] = webs.externalApp - - if self.domain: - user['domain'] = webs.domain - - if self.package: - user['package'] = package - - if self.email: - user['email'] = webs.adminEmail - - if self.localecode: - user['locale_code'] = "EN_us" - - - if self.packageName != None: - if self.package: - if self.packageName == user['package']['name'] and self.packageOwner == user['package']['owner']: - pass - else: - continue - - if self.uid !=None: if self.id: - if self.uid == user['id']: + user['id'] = pwd.getpwnam(webs.externalApp).pw_uid + + if self.un: + user['username'] = webs.externalApp + + if self.ow: + user['owner'] = webs.externalApp + + if self.domain: + user['domain'] = webs.domain + + if self.package: + user['package'] = package + + if self.email: + user['email'] = webs.adminEmail + + if self.localecode: + user['locale_code'] = "EN_us" + + + if self.packageName != None: + if self.package: + if self.packageName == user['package']['name'] and self.packageOwner == user['package']['owner']: + pass + else: + continue + + if self.uid !=None: + if self.id: + if self.uid == user['id']: + users.append(user) + else: users.append(user) else: users.append(user) - else: - users.append(user) + except BaseException as msg: + pass final = {'data': users, 'metadata': self.initialMeta} print(json.dumps(final)) diff --git a/CPCent7repo.json b/CPCent7repo.json new file mode 100644 index 000000000..2e1d80304 --- /dev/null +++ b/CPCent7repo.json @@ -0,0 +1,192 @@ +[ + { + "Package": "MariaDB-client.x86_64", + "Version": "10.1.44-1.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "MariaDB-common.x86_64", + "Version": "10.1.44-1.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "MariaDB-devel.x86_64", + "Version": "10.1.44-1.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "MariaDB-server.x86_64", + "Version": "10.1.44-1.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "MariaDB-shared.x86_64", + "Version": "10.1.44-1.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "compat-libtidy.x86_64", + "Version": "0.99.0-37.20091203.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "dovecot.x86_64", + "Version": "2:2.3.10-2", + "Repo": "@CyberPanel" + }, + { + "Package": "dovecot-mysql.x86_64", + "Version": "2:2.3.10-2", + "Repo": "@CyberPanel" + }, + { + "Package": "fastlz.x86_64", + "Version": "0.1.0-0.1.20070619svnrev12.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "galera.x86_64", + "Version": "25.3.28-1.rhel7.el7.centos", + "Repo": "@CyberPanel" + }, + { + "Package": "htop.x86_64", + "Version": "2.2.0-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "jemalloc.x86_64", + "Version": "3.6.0-1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libargon2.x86_64", + "Version": "20161029-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libbsd.x86_64", + "Version": "0.8.3-1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libc-client.x86_64", + "Version": "2007f-16.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libdb4.x86_64", + "Version": "4.8.30-13.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "liblzf.x86_64", + "Version": "3.6-7.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libmcrypt.x86_64", + "Version": "2.5.8-13.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libopendkim.x86_64", + "Version": "2.11.0-0.1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libsodium.x86_64", + "Version": "1.0.18-1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "libtidy.x86_64", + "Version": "5.4.0-1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "luajit.x86_64", + "Version": "2.0.4-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "oniguruma.x86_64", + "Version": "5.9.5-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "opendbx.x86_64", + "Version": "1.4.6-6.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "opendkim.x86_64", + "Version": "2.11.0-0.1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "pdns.x86_64", + "Version": "4.2.2-1pdns.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "pdns-backend-mysql.x86_64", + "Version": "4.2.2-1pdns.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "postfix3.x86_64", + "Version": "2:3.4.7-1.gf.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "postfix3-ldap.x86_64", + "Version": "2:3.4.7-1.gf.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "postfix3-mysql.x86_64", + "Version": "2:3.4.7-1.gf.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "postfix3-pcre.x86_64", + "Version": "2:3.4.7-1.gf.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "pure-ftpd.x86_64", + "Version": "1.0.47-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "redis.x86_64", + "Version": "3.2.12-2.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "restic.x86_64", + "Version": "0.9.6-1.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "rsync31u.x86_64", + "Version": "3.1.3-1.ius.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "udns.x86_64", + "Version": "0.4-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "udns-devel.x86_64", + "Version": "0.4-3.el7", + "Repo": "@CyberPanel" + }, + { + "Package": "vim-minimal.x86_64", + "Version": "2:8.0.003-1.gf.el7", + "Repo": "@CyberPanel" + } +] \ No newline at end of file diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index a33421611..c81f38121 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -338,7 +338,7 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) command = 'wget https://rep.cyberpanel.net/pure-ftpd-mysql_1.0.47-3_amd64.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR).org command = 'dpkg --install --force-confold pure-ftpd-common_1.0.47-3_all.deb' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) From 68a076dbe05532d473a1fc2de2961c8e029e41dc Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 12:21:51 +0500 Subject: [PATCH 086/240] ubuntu packages list --- AllCPUbuntu.json | 2984 ++++++++++++++++++++++++++++++++++ install/installCyberPanel.py | 2 +- 2 files changed, 2985 insertions(+), 1 deletion(-) create mode 100644 AllCPUbuntu.json diff --git a/AllCPUbuntu.json b/AllCPUbuntu.json new file mode 100644 index 000000000..fe707464f --- /dev/null +++ b/AllCPUbuntu.json @@ -0,0 +1,2984 @@ +[ + { + "Package": "aspell/bionic-updates,bionic-security,now", + "Version": "0.60.7~20110707-4ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "aspell-en/bionic,bionic,now", + "Version": "2017.08.24-0-0.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "autoconf/bionic,bionic,now", + "Version": "2.69-11", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "automake/bionic,bionic,now", + "Version": "1:1.15.1-3ubuntu2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "autopoint/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "0.19.8.1-6ubuntu0.3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "autotools-dev/bionic,bionic,now", + "Version": "20180224.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "binutils/bionic-updates,bionic-security,now", + "Version": "2.30-21ubuntu1~18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "binutils-common/bionic-updates,bionic-security,now", + "Version": "2.30-21ubuntu1~18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "binutils-x86-64-linux-gnu/bionic-updates,bionic-security,now", + "Version": "2.30-21ubuntu1~18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "build-essential/bionic,now", + "Version": "12.4ubuntu1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "bzip2-doc/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1.0.6-8.1ubuntu0.2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "comerr-dev/bionic-updates,bionic-security,now", + "Version": "2.1-1.44.1-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "cpp/bionic-updates,bionic-security,now", + "Version": "4:7.4.0-1ubuntu2.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "cpp-7/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "curl/bionic-updates,bionic-security,now", + "Version": "7.58.0-2ubuntu3.8", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "dbconfig-common/bionic,bionic,now", + "Version": "2.0.9", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dbconfig-mysql/bionic,bionic,now", + "Version": "2.0.9", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "debhelper/bionic-updates,bionic-updates,now", + "Version": "11.1.6ubuntu2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dh-autoreconf/bionic,bionic,now", + "Version": "17", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dh-python/bionic,bionic,now", + "Version": "3.20180325ubuntu2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dh-strip-nondeterminism/bionic,bionic,now", + "Version": "0.040-1.1~build1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dns-root-data/bionic,bionic,now", + "Version": "2018013001", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "dovecot-core/bionic,now", + "Version": "2:2.3.10-2+ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "dovecot-imapd/bionic,now", + "Version": "2:2.3.10-2+ubuntu18.04", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "dovecot-mysql/bionic,now", + "Version": "2:2.3.10-2+ubuntu18.04", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "dovecot-pop3d/bionic,now", + "Version": "2:2.3.10-2+ubuntu18.04", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "dpkg-dev/bionic-updates,bionic-updates,now", + "Version": "1.19.0.5ubuntu2.3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "ebtables/bionic-updates,now", + "Version": "2.0.10.4-3.5ubuntu2.18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "enchant/bionic,now", + "Version": "1.6.0-11.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "fakeroot/bionic,now", + "Version": "1.22-2ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "firewalld/bionic,bionic,now", + "Version": "0.4.4.6-1", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "fontconfig/bionic,now", + "Version": "2.12.6-0ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "fontconfig-config/bionic,bionic,now", + "Version": "2.12.6-0ubuntu2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "fonts-dejavu-core/bionic,bionic,now", + "Version": "2.37-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "fonts-droid-fallback/bionic,bionic,now", + "Version": "1:6.0.1r16-1.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "fonts-noto-mono/bionic,bionic,now", + "Version": "20171026-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "g++/bionic-updates,bionic-security,now", + "Version": "4:7.4.0-1ubuntu2.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "g++-7/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "galera-3/bionic,now", + "Version": "25.3.20-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gawk/bionic,now", + "Version": "1:4.1.4+dfsg-1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gcc/bionic-updates,bionic-security,now", + "Version": "4:7.4.0-1ubuntu2.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "gcc-7/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gcc-7-base/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "geoip-bin/bionic,now", + "Version": "1.6.12-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gettext/bionic-updates,bionic-security,now", + "Version": "0.19.8.1-6ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "ghostscript/bionic-updates,bionic-security,now", + "Version": "9.26~dfsg+0-0ubuntu0.18.04.12", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gir1.2-freedesktop/bionic,now", + "Version": "1.56.1-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gir1.2-gdkpixbuf-2.0/bionic,now", + "Version": "2.36.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gir1.2-harfbuzz-0.0/bionic,now", + "Version": "1.7.2-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "gir1.2-rsvg-2.0/bionic,now", + "Version": "2.40.20-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "git/bionic-updates,bionic-security,now", + "Version": "1:2.17.1-1ubuntu0.7", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "git-man/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1:2.17.1-1ubuntu0.7", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "gsfonts/bionic,bionic,now", + "Version": "1:8.11+urwcyr1.0.7~pre44-4.4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "htop/bionic,now", + "Version": "2.1.0-3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "hunspell-en-us/bionic,bionic,now", + "Version": "1:2017.08.24", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "icu-devtools/bionic-updates,bionic-security,now", + "Version": "60.2-3ubuntu3.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "idn2/bionic-updates,bionic-security,now", + "Version": "2.0.4-1.1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "imagemagick-6-common/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "intltool-debian/bionic,bionic,now", + "Version": "0.35.0+20060710.4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "ipset/bionic,now", + "Version": "6.34-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "javascript-common/bionic,bionic,now", + "Version": "11", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "krb5-multidev/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libaio1/bionic-updates,now", + "Version": "0.3.110-5ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libalgorithm-diff-perl/bionic,bionic,now", + "Version": "1.19.03-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libalgorithm-diff-xs-perl/bionic,now", + "Version": "0.04-5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libalgorithm-merge-perl/bionic,bionic,now", + "Version": "0.08-3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libarchive-cpio-perl/bionic,bionic,now", + "Version": "0.10-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libarchive-zip-perl/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1.60-1ubuntu0.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libasan4/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libaspell15/bionic-updates,bionic-security,now", + "Version": "0.60.7~20110707-4ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libassuan-dev/bionic,now", + "Version": "2.5.1-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libatomic1/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libattr1-dev/bionic,now", + "Version": "1:2.4.47-2build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libavahi-client3/bionic-updates,bionic-security,now", + "Version": "0.7-3.1ubuntu1.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libavahi-common-data/bionic-updates,bionic-security,now", + "Version": "0.7-3.1ubuntu1.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libavahi-common3/bionic-updates,bionic-security,now", + "Version": "0.7-3.1ubuntu1.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libbinutils/bionic-updates,bionic-security,now", + "Version": "2.30-21ubuntu1~18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libboost-program-options1.65.1/bionic,now", + "Version": "1.65.1+dfsg-0ubuntu5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libbz2-dev/bionic-updates,bionic-security,now", + "Version": "1.0.6-8.1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libc-ares2/bionic,now", + "Version": "1.14.0-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libc-client2007e/bionic-updates,bionic-security,now", + "Version": "8:2007f~dfsg-5ubuntu0.18.04.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libc-dev-bin/bionic,now", + "Version": "2.27-3ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libc6-dev/bionic,now", + "Version": "2.27-3ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcairo-gobject2/bionic-updates,now", + "Version": "1.15.10-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcairo-script-interpreter2/bionic-updates,now", + "Version": "1.15.10-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcairo2/bionic-updates,now", + "Version": "1.15.10-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcairo2-dev/bionic-updates,now", + "Version": "1.15.10-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcc1-0/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcgi-fast-perl/bionic,bionic,now", + "Version": "1:2.13-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libcgi-pm-perl/bionic,bionic,now", + "Version": "4.38-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libcilkrts5/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcomerr2/bionic-updates,bionic-security,now", + "Version": "1.44.1-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libconfig-inifiles-perl/bionic,bionic,now", + "Version": "2.94-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libcroco3/bionic,now", + "Version": "0.6.12-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcups2/bionic-updates,bionic-security,now", + "Version": "2.2.7-1ubuntu2.7", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcupsfilters1/bionic-updates,bionic-security,now", + "Version": "1.20.2-0ubuntu3.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcupsimage2/bionic-updates,bionic-security,now", + "Version": "2.2.7-1ubuntu2.7", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcurl3-gnutls/bionic-updates,bionic-security,now", + "Version": "7.58.0-2ubuntu3.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcurl4/bionic-updates,bionic-security,now", + "Version": "7.58.0-2ubuntu3.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libcurl4-gnutls-dev/bionic-updates,bionic-security,now", + "Version": "7.58.0-2ubuntu3.8", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libdatrie1/bionic,now", + "Version": "0.2.10-7", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libdbd-mysql-perl/bionic,now", + "Version": "4.046-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libdbi-perl/bionic,now", + "Version": "1.640-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libdjvulibre-dev/bionic-updates,bionic-security,now", + "Version": "3.5.27.1-8ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libdjvulibre-text/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "3.5.27.1-8ubuntu0.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libdjvulibre21/bionic-updates,bionic-security,now", + "Version": "3.5.27.1-8ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libdpkg-perl/bionic-updates,bionic-updates,now", + "Version": "1.19.0.5ubuntu2.3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libenchant1c2a/bionic,now", + "Version": "1.6.0-11.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libencode-locale-perl/bionic,bionic,now", + "Version": "1.05-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "liberror-perl/bionic,bionic,now", + "Version": "0.17025-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libev4/bionic,now", + "Version": "1:4.22-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libevent-2.1-6/bionic,now", + "Version": "2.1.8-stable-4build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libexif-dev/bionic-updates,bionic-security,now", + "Version": "0.6.21-4ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libexif-doc/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "0.6.21-4ubuntu0.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libexif12/bionic-updates,bionic-security,now", + "Version": "0.6.21-4ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libexpat1-dev/bionic-updates,bionic-security,now", + "Version": "2.2.5-3ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libexttextcat-2.0-0/bionic,now", + "Version": "3.4.5-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libexttextcat-data/bionic,bionic,now", + "Version": "3.4.5-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libfakeroot/bionic,now", + "Version": "1.22-2ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libfcgi-perl/bionic,now", + "Version": "0.78-2build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libffi-dev/bionic,now", + "Version": "3.2.1-8", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libfftw3-double3/bionic,now", + "Version": "3.3.7-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libfile-copy-recursive-perl/bionic,bionic,now", + "Version": "0.40-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libfile-fcntllock-perl/bionic,now", + "Version": "0.22-3build2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libfile-stripnondeterminism-perl/bionic,bionic,now", + "Version": "0.040-1.1~build1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libfontconfig1/bionic,now", + "Version": "2.12.6-0ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libfontconfig1-dev/bionic,now", + "Version": "2.12.6-0ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libfreetype6-dev/bionic,now", + "Version": "2.8.1-2ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgcc-7-dev/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgcrypt20-dev/bionic-updates,bionic-security,now", + "Version": "1.8.1-4ubuntu1.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libgdbm-compat4/bionic,now", + "Version": "1.14.1-6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgdk-pixbuf2.0-0/bionic,now", + "Version": "2.36.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgdk-pixbuf2.0-bin/bionic,now", + "Version": "2.36.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgdk-pixbuf2.0-common/bionic,bionic,now", + "Version": "2.36.11-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libgdk-pixbuf2.0-dev/bionic,now", + "Version": "2.36.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgeoip-dev/bionic,now", + "Version": "1.6.12-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libglib2.0-bin/bionic-updates,bionic-security,now", + "Version": "2.56.4-0ubuntu0.18.04.6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libglib2.0-dev/bionic-updates,bionic-security,now", + "Version": "2.56.4-0ubuntu0.18.04.6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libglib2.0-dev-bin/bionic-updates,bionic-security,now", + "Version": "2.56.4-0ubuntu0.18.04.6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgmp-dev/bionic,now", + "Version": "2:6.1.2+dfsg-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgmpxx4ldbl/bionic,now", + "Version": "2:6.1.2+dfsg-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgnutls-dane0/bionic-updates,bionic-security,now", + "Version": "3.5.18-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgnutls-openssl27/bionic-updates,bionic-security,now", + "Version": "3.5.18-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgnutls28-dev/bionic-updates,bionic-security,now", + "Version": "3.5.18-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libgnutlsxx28/bionic-updates,bionic-security,now", + "Version": "3.5.18-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgomp1/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgpg-error-dev/bionic,now", + "Version": "1.27-6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgpgme-dev/bionic-updates,now", + "Version": "1.10.0-1ubuntu2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libgpgme11/bionic-updates,now", + "Version": "1.10.0-1ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgpm2/bionic,now", + "Version": "1.20.7-5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgraphite2-3/bionic,now", + "Version": "1.3.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgraphite2-dev/bionic,now", + "Version": "1.3.11-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgs9/bionic-updates,bionic-security,now", + "Version": "9.26~dfsg+0-0ubuntu0.18.04.12", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libgs9-common/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "9.26~dfsg+0-0ubuntu0.18.04.12", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libgssrpc4/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libharfbuzz-dev/bionic,now", + "Version": "1.7.2-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libharfbuzz-gobject0/bionic,now", + "Version": "1.7.2-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libharfbuzz-icu0/bionic,now", + "Version": "1.7.2-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libharfbuzz0b/bionic,now", + "Version": "1.7.2-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libhtml-parser-perl/bionic,now", + "Version": "3.72-3build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libhtml-tagset-perl/bionic,bionic,now", + "Version": "3.20-3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libhtml-template-perl/bionic,bionic,now", + "Version": "2.97-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libhttp-date-perl/bionic,bionic,now", + "Version": "6.02-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libhttp-message-perl/bionic,bionic,now", + "Version": "6.14-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libhunspell-1.6-0/bionic,now", + "Version": "1.6.2-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libice-dev/bionic,now", + "Version": "2:1.0.9-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libice6/bionic,now", + "Version": "2:1.0.9-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libicu-dev/bionic-updates,bionic-security,now", + "Version": "60.2-3ubuntu3.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libicu-le-hb-dev/bionic,now", + "Version": "1.0.3+git161113-4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libicu-le-hb0/bionic,now", + "Version": "1.0.3+git161113-4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libiculx60/bionic-updates,bionic-security,now", + "Version": "60.2-3ubuntu3.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libidn2-0-dev/bionic-updates,bionic-security,now", + "Version": "2.0.4-1.1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libidn2-dev/bionic-updates,bionic-security,now", + "Version": "2.0.4-1.1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libijs-0.35/bionic,now", + "Version": "0.35-13", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libilmbase-dev/bionic,now", + "Version": "2.2.0-11ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libilmbase12/bionic,now", + "Version": "2.2.0-11ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libio-html-perl/bionic,bionic,now", + "Version": "1.001-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libipset3/bionic,now", + "Version": "6.34-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libisl19/bionic,now", + "Version": "0.19-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libitm1/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjansson4/bionic,now", + "Version": "2.11-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjbig-dev/bionic,now", + "Version": "2.1-3.1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjbig0/bionic,now", + "Version": "2.1-3.1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjbig2dec0/bionic,now", + "Version": "0.13-6", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjemalloc1/bionic,now", + "Version": "3.6.0-11", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjpeg-dev/bionic,now", + "Version": "8c-2ubuntu8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjpeg-turbo8/bionic-updates,bionic-security,now", + "Version": "1.5.2-0ubuntu5.18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjpeg-turbo8-dev/bionic-updates,bionic-security,now", + "Version": "1.5.2-0ubuntu5.18.04.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjpeg8/bionic,now", + "Version": "8c-2ubuntu8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjpeg8-dev/bionic,now", + "Version": "8c-2ubuntu8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libjs-jquery/bionic,bionic,now", + "Version": "3.2.1-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libkadm5clnt-mit11/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libkadm5srv-mit11/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libkdb5-9/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libkrb5-dev/bionic-updates,bionic-security,now", + "Version": "1.16-2ubuntu0.1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "liblcms2-2/bionic-updates,bionic-security,now", + "Version": "2.9-1ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblcms2-dev/bionic-updates,bionic-security,now", + "Version": "2.9-1ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libldap2-dev/bionic-updates,now", + "Version": "2.4.45+dfsg-1ubuntu1.4", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "liblqr-1-0/bionic,now", + "Version": "0.4.2-2.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblqr-1-0-dev/bionic,now", + "Version": "0.4.2-2.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblsan0/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libltdl-dev/bionic,now", + "Version": "2.4.6-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libltdl7/bionic,now", + "Version": "2.4.6-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblua5.1-0/bionic,now", + "Version": "5.1.5-8.1build2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblua5.2-0/bionic,now", + "Version": "5.2.4-1.1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblua5.3-0/bionic-updates,bionic-security,now", + "Version": "5.3.3-1ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liblwp-mediatypes-perl/bionic,bionic,now", + "Version": "6.02-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "liblzma-dev/bionic,now", + "Version": "5.2.2-1.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "liblzo2-2/bionic,now", + "Version": "2.08-1.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickcore-6-arch-config/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickcore-6-headers/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickcore-6.q16-3/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickcore-6.q16-3-extra/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickcore-6.q16-dev/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickwand-6-headers/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickwand-6.q16-3/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickwand-6.q16-dev/bionic-updates,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmagickwand-dev/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "8:6.9.7.4+dfsg-16ubuntu6.8", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "libmail-sendmail-perl/bionic,bionic,now", + "Version": "0.80-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libmariadbclient-dev/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libmariadbclient18/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmcrypt4/bionic,now", + "Version": "2.5.8-3.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmemcached11/bionic-updates,now", + "Version": "1.0.18-4.2ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmilter1.0.1/bionic,now", + "Version": "8.15.2-10", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmpc3/bionic,now", + "Version": "1.1.0-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmpfr6/bionic,now", + "Version": "4.0.1-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmpx2/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libmysqlclient20/bionic-updates,bionic-security,now", + "Version": "5.7.29-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libnghttp2-14/bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libnghttp2-dev/bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libonig4/bionic,now", + "Version": "6.7.0-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libopendbx1/bionic,now", + "Version": "1.4.6-11", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libopendbx1-sqlite3/bionic,now", + "Version": "1.4.6-11", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libopendkim11/bionic,now", + "Version": "2.11.0~alpha-11build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libopenexr-dev/bionic-updates,bionic-security,now", + "Version": "2.2.0-11.1ubuntu1.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libopenexr22/bionic-updates,bionic-security,now", + "Version": "2.2.0-11.1ubuntu1.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libp11-kit-dev/bionic,now", + "Version": "0.23.9-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpango-1.0-0/bionic-updates,bionic-security,now", + "Version": "1.40.14-1ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpangocairo-1.0-0/bionic-updates,bionic-security,now", + "Version": "1.40.14-1ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpangoft2-1.0-0/bionic-updates,bionic-security,now", + "Version": "1.40.14-1ubuntu0.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpaper-utils/bionic,now", + "Version": "1.1.24+nmu5ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpaper1/bionic,now", + "Version": "1.1.24+nmu5ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpcre16-3/bionic,now", + "Version": "2:8.39-9", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpcre3-dev/bionic,now", + "Version": "2:8.39-9", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libpcre32-3/bionic,now", + "Version": "2:8.39-9", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpcrecpp0v5/bionic,now", + "Version": "2:8.39-9", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libperl5.26/bionic-updates,bionic-security,now", + "Version": "5.26.1-6ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpixman-1-0/bionic,now", + "Version": "0.34.0-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpixman-1-dev/bionic,now", + "Version": "0.34.0-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpng-dev/bionic-updates,bionic-security,now", + "Version": "1.6.34-1ubuntu0.18.04.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpng-tools/bionic-updates,bionic-security,now", + "Version": "1.6.34-1ubuntu0.18.04.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpolkit-agent-1-0/bionic-updates,bionic-security,now", + "Version": "0.105-20ubuntu0.18.04.5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpolkit-backend-1-0/bionic-updates,bionic-security,now", + "Version": "0.105-20ubuntu0.18.04.5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpsl-dev/bionic,now", + "Version": "0.19.1-5build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libpthread-stubs0-dev/bionic,now", + "Version": "0.3-4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpython3-dev/bionic-updates,now", + "Version": "3.6.7-1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpython3.6/bionic-updates,bionic-security,now", + "Version": "3.6.9-1~18.04ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libpython3.6-dev/bionic-updates,bionic-security,now", + "Version": "3.6.9-1~18.04ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libquadmath0/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librbl1/bionic,now", + "Version": "2.11.0~alpha-11build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libreadline5/bionic,now", + "Version": "5.2+dfsg-3build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librecode0/bionic,now", + "Version": "3.6-23", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librsvg2-2/bionic,now", + "Version": "2.40.20-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librsvg2-common/bionic,now", + "Version": "2.40.20-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librsvg2-dev/bionic,now", + "Version": "2.40.20-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "librtmp-dev/bionic,now", + "Version": "2.4+20151223.gitfa8646d.1-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "librtmp1/bionic,now", + "Version": "2.4+20151223.gitfa8646d.1-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libsigsegv2/bionic,now", + "Version": "2.12-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libsm-dev/bionic,now", + "Version": "2:1.2.2-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libsm6/bionic,now", + "Version": "2:1.2.2-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libsodium23/bionic,now", + "Version": "1.0.16-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libssl-dev/bionic-updates,bionic-security,now", + "Version": "1.1.1-1ubuntu2.1~18.04.5", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libstdc++-7-dev/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libstemmer0d/bionic,now", + "Version": "0+svn585-1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libsys-hostname-long-perl/bionic,bionic,now", + "Version": "1.5-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libtasn1-6-dev/bionic,now", + "Version": "4.13-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtasn1-doc/bionic,bionic,now", + "Version": "4.13-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libterm-readkey-perl/bionic,now", + "Version": "2.37-1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libthai-data/bionic,bionic,now", + "Version": "0.1.27-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libthai0/bionic,now", + "Version": "0.1.27-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtidy5/bionic,now", + "Version": "1:5.2.0-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtiff-dev/bionic-updates,bionic-security,now", + "Version": "4.0.9-5ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtiff5/bionic-updates,bionic-security,now", + "Version": "4.0.9-5ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtiff5-dev/bionic-updates,bionic-security,now", + "Version": "4.0.9-5ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtiffxx5/bionic-updates,bionic-security,now", + "Version": "4.0.9-5ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libtimedate-perl/bionic,bionic,now", + "Version": "2.3000-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libtool/bionic,bionic,now", + "Version": "2.4.6-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libtsan0/bionic-updates,bionic-security,now", + "Version": "8.4.0-1ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libubsan0/bionic-updates,bionic-security,now", + "Version": "7.5.0-3ubuntu1~18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libudns-dev/bionic,now", + "Version": "0.4-1build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "libudns0/bionic,now", + "Version": "0.4-1build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libunbound2/bionic-updates,now", + "Version": "1.6.7-1ubuntu2.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "liburi-perl/bionic,bionic,now", + "Version": "1.73-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libvbr2/bionic,now", + "Version": "2.11.0~alpha-11build1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libwebp6/bionic,now", + "Version": "0.6.1-2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libwmf-dev/bionic,now", + "Version": "0.2.8.4-12", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libwmf0.2-7/bionic,now", + "Version": "0.2.8.4-12", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libx11-dev/bionic-updates,now", + "Version": "2:1.6.4-3ubuntu0.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libx11-doc/bionic-updates,bionic-updates,now", + "Version": "2:1.6.4-3ubuntu0.2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "libxau-dev/bionic,now", + "Version": "1:1.0.8-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxcb-render0/bionic-updates,now", + "Version": "1.13-2~ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxcb-render0-dev/bionic-updates,now", + "Version": "1.13-2~ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxcb-shm0/bionic-updates,now", + "Version": "1.13-2~ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxcb-shm0-dev/bionic-updates,now", + "Version": "1.13-2~ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxcb1-dev/bionic-updates,now", + "Version": "1.13-2~ubuntu18.04", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxdmcp-dev/bionic,now", + "Version": "1:1.1.2-3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxext-dev/bionic,now", + "Version": "2:1.3.3-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxml2-dev/bionic-updates,bionic-security,now", + "Version": "2.9.4+dfsg1-6.1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxpm4/bionic,now", + "Version": "1:3.5.12-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxrender-dev/bionic,now", + "Version": "1:0.9.10-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxrender1/bionic,now", + "Version": "1:0.9.10-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxslt1.1/bionic-updates,bionic-security,now", + "Version": "1.1.29-5ubuntu0.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxt-dev/bionic,now", + "Version": "1:1.1.5-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libxt6/bionic,now", + "Version": "1:1.1.5-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "libzip4/bionic,now", + "Version": "1.1.2-1.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "linux-libc-dev/bionic-updates,bionic-security,now", + "Version": "4.15.0-96.97", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp70/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-common/bionic,bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "lsphp70-curl/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-dev/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-igbinary/bionic,now", + "Version": "3.0.1-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp70-imap/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-intl/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-json/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-ldap/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-memcached/bionic,now", + "Version": "3.1.5-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-msgpack/bionic,now", + "Version": "2.0.3-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp70-mysql/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-opcache/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-pspell/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-recode/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-redis/bionic,now", + "Version": "5.1.1-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-sqlite3/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp70-tidy/bionic,now", + "Version": "7.0.33-13+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-common/bionic,bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "lsphp71-curl/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-dev/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-igbinary/bionic,now", + "Version": "3.0.1-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp71-imap/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-intl/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-json/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-ldap/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-memcached/bionic,now", + "Version": "3.1.5-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-msgpack/bionic,now", + "Version": "2.0.3-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp71-mysql/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-opcache/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-pspell/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-recode/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-redis/bionic,now", + "Version": "5.1.1-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-sqlite3/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp71-tidy/bionic,now", + "Version": "7.1.33-3+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-common/bionic,bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "lsphp72-curl/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-dev/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-igbinary/bionic,now", + "Version": "3.0.1-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp72-imap/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-intl/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-json/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-ldap/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-memcached/bionic,now", + "Version": "3.1.5-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-msgpack/bionic,now", + "Version": "2.0.3-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp72-mysql/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-opcache/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-pspell/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-recode/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-redis/bionic,now", + "Version": "5.1.1-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-sqlite3/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp72-tidy/bionic,now", + "Version": "7.2.29-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-common/bionic,bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "lsphp73-curl/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-dev/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-igbinary/bionic,now", + "Version": "3.0.1-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp73-imap/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-intl/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-json/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-ldap/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-memcached/bionic,now", + "Version": "3.1.5-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-msgpack/bionic,now", + "Version": "2.0.3-1+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp73-mysql/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-opcache/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-pspell/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-recode/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-redis/bionic,now", + "Version": "5.1.1-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-sqlite3/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp73-tidy/bionic,now", + "Version": "7.3.16-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-common/bionic,bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "lsphp74-curl/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-dev/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-igbinary/bionic,now", + "Version": "3.0.1-2+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp74-imap/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-intl/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-json/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-ldap/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-memcached/bionic,now", + "Version": "3.1.5-2+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-msgpack/bionic,now", + "Version": "2.0.3-2+bionic", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "lsphp74-mysql/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-opcache/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-pspell/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-redis/bionic,now", + "Version": "5.1.1-2+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-sqlite3/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "lsphp74-tidy/bionic,now", + "Version": "7.4.4-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "m4/bionic,now", + "Version": "1.4.18-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "make/bionic,now", + "Version": "4.1-9.1ubuntu1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "manpages-dev/bionic,bionic,now", + "Version": "4.15-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "mariadb-client-10.1/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "mariadb-client-core-10.1/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "mariadb-common/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "mariadb-server/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "mariadb-server-10.1/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "mariadb-server-core-10.1/bionic-updates,bionic-security,now", + "Version": "1:10.1.44-0ubuntu0.18.04.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "memcached/bionic-updates,bionic-security,now", + "Version": "1.5.6-0ubuntu1.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "mlock/bionic-updates,bionic-security,now", + "Version": "8:2007f~dfsg-5ubuntu0.18.04.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "mysql-common/bionic,bionic,now", + "Version": "5.8+1.0.4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "nettle-dev/bionic,now", + "Version": "3.4-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "nghttp2/bionic,bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "nghttp2-client/bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "nghttp2-proxy/bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "nghttp2-server/bionic,now", + "Version": "1.30.0-1ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "openbsd-inetd/bionic,now", + "Version": "0.20160825-3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "opendkim/bionic,now", + "Version": "2.11.0~alpha-11build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "opendkim-tools/bionic,now", + "Version": "2.11.0~alpha-11build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "openlitespeed/bionic,now", + "Version": "1.6.12-1+bionic", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "patch/bionic-updates,bionic-security,now", + "Version": "2.7.6-2ubuntu1.1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "pdns-backend-bind/bionic,now", + "Version": "4.1.1-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "pdns-backend-mysql/bionic,now", + "Version": "4.1.1-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "pdns-server/bionic,now", + "Version": "4.1.1-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "perl/bionic-updates,bionic-security,now", + "Version": "5.26.1-6ubuntu0.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "perl-modules-5.26/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "5.26.1-6ubuntu0.3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php-cli/bionic,bionic,now", + "Version": "1:7.2+60ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php-common/bionic,bionic,now", + "Version": "1:60ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php-pear/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "1:1.10.5+submodules+notgz-1ubuntu1.18.04.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php-readline/bionic,bionic,now", + "Version": "1:7.2+60ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php-xml/bionic,bionic,now", + "Version": "1:7.2+60ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-cli/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-common/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-json/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-opcache/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-readline/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "php7.2-xml/bionic-updates,bionic-security,now", + "Version": "7.2.24-0ubuntu0.18.04.4", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "pkg-config/bionic,now", + "Version": "0.29.1-0ubuntu2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "pkg-php-tools/bionic,bionic,now", + "Version": "1.35ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "po-debconf/bionic,bionic,now", + "Version": "1.0.20", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "policykit-1/bionic-updates,bionic-security,now", + "Version": "0.105-20ubuntu0.18.04.5", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "poppler-data/bionic,bionic,now", + "Version": "0.4.8-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "postfix/bionic-updates,now", + "Version": "3.3.0-1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "postfix-mysql/bionic-updates,now", + "Version": "3.3.0-1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "pure-ftpd-common/now", + "Version": "1.0.47-3", + "Arch": "all", + "Status": "[installed,local]" + }, + { + "Package": "pure-ftpd-mysql/now", + "Version": "1.0.47-3", + "Arch": "amd64", + "Status": "[installed,local]" + }, + { + "Package": "python-pip-whl/bionic-updates,bionic-updates,now", + "Version": "9.0.1-2.3~ubuntu1.18.04.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-asn1crypto/bionic,bionic,now", + "Version": "0.24.0-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-cffi-backend/bionic,now", + "Version": "1.11.5-1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-crypto/bionic,now", + "Version": "2.6.1-8ubuntu2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-cryptography/bionic-updates,bionic-security,now", + "Version": "2.1.4-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-decorator/bionic,bionic,now", + "Version": "4.1.2-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-dev/bionic-updates,now", + "Version": "3.6.7-1~18.04", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "python3-distutils/bionic-updates,bionic-updates,now", + "Version": "3.6.9-1~18.04", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-keyring/bionic,bionic,now", + "Version": "10.6.0-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-keyrings.alt/bionic,bionic,now", + "Version": "3.0-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-lib2to3/bionic-updates,bionic-updates,now", + "Version": "3.6.9-1~18.04", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-pip/bionic-updates,bionic-updates,now", + "Version": "9.0.1-2.3~ubuntu1.18.04.1", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "python3-secretstorage/bionic,bionic,now", + "Version": "2.3.1-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-selinux/bionic,now", + "Version": "2.7-2build2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-setuptools/bionic,bionic,now", + "Version": "39.0.1-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-slip/bionic,bionic,now", + "Version": "0.6.5-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-slip-dbus/bionic,bionic,now", + "Version": "0.6.5-2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-venv/bionic-updates,now", + "Version": "3.6.7-1~18.04", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "python3-virtualenv/bionic,bionic,now", + "Version": "15.1.0+ds-1.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-wheel/bionic,bionic,now", + "Version": "0.30.0-0.2", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3-xdg/bionic,bionic,now", + "Version": "0.25-4ubuntu1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "python3.6-dev/bionic-updates,bionic-security,now", + "Version": "3.6.9-1~18.04ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "python3.6-venv/bionic-updates,bionic-security,now", + "Version": "3.6.9-1~18.04ubuntu1", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "rcs/bionic,now", + "Version": "5.9.4-4", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "redis/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "5:4.0.9-1ubuntu0.2", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "redis-server/bionic-updates,bionic-security,now", + "Version": "5:4.0.9-1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "redis-tools/bionic-updates,bionic-security,now", + "Version": "5:4.0.9-1ubuntu0.2", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "restic/bionic,now", + "Version": "0.8.3+ds-1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "shtool/bionic,bionic,now", + "Version": "2.0.8-9", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "socat/bionic,now", + "Version": "1.7.3.2-2ubuntu2", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "ssl-cert/bionic,bionic,now", + "Version": "1.0.39", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "tcpd/bionic,now", + "Version": "7.6.q-27", + "Arch": "amd64", + "Status": "[installed,automatic]" + }, + { + "Package": "update-inetd/bionic,bionic,now", + "Version": "4.44", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "vim/bionic-updates,bionic-security,now", + "Version": "2:8.0.1453-1ubuntu1.3", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "vim-runtime/bionic-updates,bionic-updates,bionic-security,bionic-security,now", + "Version": "2:8.0.1453-1ubuntu1.3", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "virtualenv/bionic,bionic,now", + "Version": "15.1.0+ds-1.1", + "Arch": "all", + "Status": "[installed]" + }, + { + "Package": "whichman/bionic,now", + "Version": "2.4-8build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "x11-common/bionic-updates,bionic-updates,now", + "Version": "1:7.7+19ubuntu7.1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "x11proto-core-dev/bionic,bionic,now", + "Version": "2018.4-4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "x11proto-dev/bionic,bionic,now", + "Version": "2018.4-4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "x11proto-xext-dev/bionic,bionic,now", + "Version": "2018.4-4", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "xorg-sgml-doctools/bionic,bionic,now", + "Version": "1:1.11-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "xtrans-dev/bionic,bionic,now", + "Version": "1.3.5-1", + "Arch": "all", + "Status": "[installed,automatic]" + }, + { + "Package": "zip/bionic,now", + "Version": "3.0-11build1", + "Arch": "amd64", + "Status": "[installed]" + }, + { + "Package": "zlib1g-dev/bionic,now", + "Version": "1:1.2.11.dfsg-0ubuntu2", + "Arch": "amd64", + "Status": "[installed]" + } +] \ No newline at end of file diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index c81f38121..a33421611 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -338,7 +338,7 @@ class InstallCyberPanel: install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) command = 'wget https://rep.cyberpanel.net/pure-ftpd-mysql_1.0.47-3_amd64.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR).org + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) command = 'dpkg --install --force-confold pure-ftpd-common_1.0.47-3_all.deb' install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) From 00e23f430ae153beb530797841de2a7658b96cdd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 18:42:49 +0500 Subject: [PATCH 087/240] fix imunify after upgrade --- plogical/upgrade.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 38d24f8a8..2eeef02bf 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1375,6 +1375,12 @@ class Upgrade: ## Move static files + imunifyPath = '/usr/local/CyberCP/public/imunify' + + if os.path.exists(imunifyPath): + command = "yum reinstall imunify360-firewall-generic -y" + Upgrade.executioner(command, command, 1) + Upgrade.staticContent() except: From 4e53857425e4272f6a67c709be5428aec910136a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 23:29:59 +0500 Subject: [PATCH 088/240] fix imunify after upgrade --- plogical/upgrade.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 2eeef02bf..427092015 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1373,14 +1373,6 @@ class Upgrade: Upgrade.stdOut('Settings file restored!') - ## Move static files - - imunifyPath = '/usr/local/CyberCP/public/imunify' - - if os.path.exists(imunifyPath): - command = "yum reinstall imunify360-firewall-generic -y" - Upgrade.executioner(command, command, 1) - Upgrade.staticContent() except: @@ -2113,6 +2105,14 @@ vmail Upgrade.installCLScripts() Upgrade.runSomeImportantBash() + ## Move static files + + imunifyPath = '/usr/local/CyberCP/public/imunify' + + if os.path.exists(imunifyPath): + command = "yum reinstall imunify360-firewall-generic -y" + Upgrade.executioner(command, command, 1) + Upgrade.stdOut("Upgrade Completed.") From 47e93eadbdc3aa6480a27eb8a5651c955c5e15d3 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 23:44:58 +0500 Subject: [PATCH 089/240] remove redundant steps --- cyberpanel_upgrade.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 89aab1782..d833ba5f6 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -1,4 +1,5 @@ #!/bin/bash + #CyberPanel Upgrade script export LC_CTYPE=en_US.UTF-8 @@ -28,13 +29,6 @@ rm -f /etc/yum.repos.d/gf.repo rm -f /etc/yum.repos.d/powerdns-auth-42.repo rm -rf /etc/yum.repos.d/powerdns-auth-master.repo rm -rf /etc/yum.repos.d/gf.repo.rpmnew -#sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-AppStream.repo -yum clean all -yum update -y -yum autoremove epel-release -y -rm -f /etc/yum.repos.d/epel.repo -rm -f /etc/yum.repos.d/epel.repo.rpmsave - ## @@ -171,18 +165,27 @@ if echo $OUTPUT | grep -q "CentOS Linux 7" ; then curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo yum clean all yum update -y + yum autoremove epel-release -y + rm -f /etc/yum.repos.d/epel.repo + rm -f /etc/yum.repos.d/epel.repo.rpmsave elif echo $OUTPUT | grep -q "CloudLinux 7" ; then echo -e "\nDetecting CloudLinux 7.X...\n" SERVER_OS="CentOS7" curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel.repo > /etc/yum.repos.d/CyberPanel.repo yum clean all yum update -y + yum autoremove epel-release -y + rm -f /etc/yum.repos.d/epel.repo + rm -f /etc/yum.repos.d/epel.repo.rpmsave elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then curl https://raw.githubusercontent.com/usmannasir/cyberpanel/v2.0.1/install/CyberPanel8.repo > /etc/yum.repos.d/CyberPanel.repo echo -e "\nDetecting CentOS 8.X...\n" SERVER_OS="CentOS8" yum clean all yum update -y + yum autoremove epel-release -y + rm -f /etc/yum.repos.d/epel.repo + rm -f /etc/yum.repos.d/epel.repo.rpmsave elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then echo -e "\nDetecting Ubuntu 18.04...\n" SERVER_OS="Ubuntu" @@ -285,6 +288,7 @@ else fi check_return + if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate check_return From 7c241ec0e972557386e4afcc274febc555da9c4d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 26 Apr 2020 23:52:44 +0500 Subject: [PATCH 090/240] remove redundant steps --- cyberpanel.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 76d8bb009..993cc279d 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -5,7 +5,6 @@ SUDO_TEST=$(set) DEV="OFF" -BRANCH="stable" POSTFIX_VARIABLE="ON" POWERDNS_VARIABLE="ON" PUREFTPD_VARIABLE="ON" From 4b0d4aafbddbe474e9c368ea77cb287f21a15005 Mon Sep 17 00:00:00 2001 From: GAINS-Projects Date: Sun, 26 Apr 2020 22:48:23 +0200 Subject: [PATCH 091/240] German Translation Updatet Version of the German Translation --- locale/de/LC_MESSAGES/django.mo | Bin 88735 -> 93372 bytes locale/de/LC_MESSAGES/django.po | 178 +++++++++++--------------------- 2 files changed, 60 insertions(+), 118 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 4fb5a2f4c84ca42a60f41cdad324b41e53bb154c..273cf450a68a0d13c0536adf70af0bfb4fe1ad0a 100644 GIT binary patch delta 29967 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 delta 26015 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index ab5945318..6de601011 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -3,20 +3,12 @@ # This file is distributed under the same license as the CyberPanel package. # FIRST AUTHOR , 2017. # -#: baseTemplate/templates/baseTemplate/index.html:219 -#: baseTemplate/templates/baseTemplate/index.html:272 -#: baseTemplate/templates/baseTemplate/index.html:279 -#: baseTemplate/templates/baseTemplate/index.html:286 -#: baseTemplate/templates/baseTemplate/index.html:293 -#: baseTemplate/templates/baseTemplate/index.html:300 -#: baseTemplate/templates/baseTemplate/index.html:307 -#: emailMarketing/templates/emailMarketing/sendEmails.html:93 msgid "" msgstr "" "Project-Id-Version: CyberPanel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-21 19:54+0500\n" -"PO-Revision-Date: 2019-08-14 18:39+0200\n" +"PO-Revision-Date: 2020-04-26 22:47+0200\n" "Last-Translator: \n" "Language-Team: GERMAN \n" "Language: de\n" @@ -24,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 2.3\n" #: CLManager/templates/CLManager/createPackage.html:3 msgid "Create Cloud Linux Package - CyberPanel" @@ -328,7 +320,7 @@ msgstr "Italienisch" #: CyberCP/settings.py:189 msgid "Deutsch" -msgstr "" +msgstr "Deutsch" #: IncBackups/templates/IncBackups/backupSchedule.html:3 #: backup/templates/backup/backupSchedule.html:3 @@ -376,10 +368,8 @@ msgstr "Frequenz bestimmen" #: IncBackups/templates/IncBackups/backupSchedule.html:54 #: IncBackups/templates/IncBackups/createBackup.html:56 -#, fuzzy -#| msgid "Backup Management" msgid "Backup Content" -msgstr "Sicherungsverwaltung" +msgstr "Backup-Inhalt" #: IncBackups/templates/IncBackups/backupSchedule.html:98 #: IncBackups/templates/IncBackups/incrementalDestinations.html:72 @@ -398,6 +388,7 @@ msgstr "Suche Konten..." #: IncBackups/templates/IncBackups/backupSchedule.html:124 msgid "Select sites to be included in this job" msgstr "" +"Wähle die Webseiten aus, die in diesen Auftrag einbezogen werden sollen" #: IncBackups/templates/IncBackups/backupSchedule.html:150 #: IncBackups/templates/IncBackups/createBackup.html:127 @@ -460,10 +451,8 @@ msgid "Delete" msgstr "Löschen" #: IncBackups/templates/IncBackups/createBackup.html:3 -#, fuzzy -#| msgid "Cancel Backup" msgid "Create Incremental Backup" -msgstr "Sicherung abbrechen" +msgstr "Erstellen einer inkrementellen Sicherung" #: IncBackups/templates/IncBackups/createBackup.html:13 #: IncBackups/templates/IncBackups/createBackup.html:23 @@ -481,10 +470,10 @@ msgid "Backup Docs" msgstr "Sicherung Docs" #: IncBackups/templates/IncBackups/createBackup.html:17 -#, fuzzy -#| msgid "This page can be used to Back up your websites" msgid "This page can be used to create incremental backups for your websites." -msgstr "Diese Seite kann zum sichern der Webseite benutzt werden" +msgstr "" +"Diese Seite kann verwendet werden, um inkrementelle Sicherungen für deine " +"Webseiten zu erstellen." #: IncBackups/templates/IncBackups/createBackup.html:33 #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:35 @@ -538,7 +527,7 @@ msgstr "Job ID" #: IncBackups/templates/IncBackups/createBackup.html:162 #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:97 msgid "Snapshot ID" -msgstr "" +msgstr "Snapshot ID" #: IncBackups/templates/IncBackups/createBackup.html:163 #: dns/templates/dns/addDeleteDNSRecords.html:327 @@ -558,30 +547,22 @@ msgid "Set up Back up Destinations" msgstr "Zielort der Sicherung" #: IncBackups/templates/IncBackups/incrementalDestinations.html:14 -#, fuzzy -#| msgid "Set up Back up Destinations" msgid "Set up Incremental Back up Destinations" -msgstr "Zielort der Sicherung" +msgstr "Zielort der inkrementellen Sicherung" #: IncBackups/templates/IncBackups/incrementalDestinations.html:20 -#, fuzzy -#| msgid "On this page you can set up your Back up destinations. (SFTP)" msgid "On this page you can set up your Back up destinations. (SFTP and AWS)" msgstr "" "Auf dieser Seite kannst du die Zielorte für deine Sicherungen definieren. " -"(SFTP)" +"(SFTP und AWS)" #: IncBackups/templates/IncBackups/incrementalDestinations.html:26 -#, fuzzy -#| msgid "Set up Back up Destinations" msgid "Set up Back up Destinations." -msgstr "Zielort der Sicherung" +msgstr "Zielort der Sicherung definieren." #: IncBackups/templates/IncBackups/incrementalDestinations.html:35 -#, fuzzy -#| msgid "Select Template" msgid "Select Type" -msgstr "Template auswählen" +msgstr "Typ auswählen" #: IncBackups/templates/IncBackups/incrementalDestinations.html:47 #: backup/templates/backup/backupDestinations.html:30 @@ -635,30 +616,28 @@ msgstr "IP" #: IncBackups/templates/IncBackups/incrementalDestinations.html:117 #: IncBackups/templates/IncBackups/incrementalDestinations.html:153 msgid "AWS_ACCESS_KEY_ID" -msgstr "" +msgstr "AWS_ACCESS_KEY_ID" #: IncBackups/templates/IncBackups/incrementalDestinations.html:124 msgid "AWS_SECRET_ACCESS_KEY" -msgstr "" +msgstr "AWS_SECRET_ACCESS_KEY" #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:3 #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:13 -#, fuzzy -#| msgid "Cancel Backup" msgid "Restore Remote Incremental Backups" -msgstr "Sicherung abbrechen" +msgstr "Wiederherstellen von inkrementellen Remotesicherungen" #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:19 -#, fuzzy -#| msgid "This page can be used to Back up your websites" msgid "" "This page can be used to restore remote incremental backups for your " "websites." -msgstr "Diese Seite kann zum sichern der Webseite benutzt werden" +msgstr "" +"Diese Seite kann verwendet werden, um inkrementelle Remotesicherungen für " +"deine Webseiten wiederherzustellen." #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:69 msgid "Fetch Restore Points" -msgstr "" +msgstr "Abrufen von Wiederherstellungspunkten" #: IncBackups/templates/IncBackups/restoreRemoteBackups.html:99 #: emailMarketing/templates/emailMarketing/manageSMTPHosts.html:76 @@ -692,33 +671,31 @@ msgid "Actions" msgstr "Aktionen" #: WebTerminal/templates/WebTerminal/WebTerminal.html:3 -#, fuzzy -#| msgid "Domains - CyberPanel" msgid "Terminal - CyberPanel" -msgstr "Domains - CyberPanel" +msgstr "Terminal - CyberPanel" #: WebTerminal/templates/WebTerminal/WebTerminal.html:16 #: baseTemplate/templates/baseTemplate/index.html:641 #: baseTemplate/templates/baseTemplate/index.html:650 msgid "Terminal" -msgstr "" +msgstr "Terminal" #: WebTerminal/templates/WebTerminal/WebTerminal.html:18 msgid "Web Terminal Docs" -msgstr "" +msgstr "Web Terminal Docs" #: WebTerminal/templates/WebTerminal/WebTerminal.html:19 msgid "Execute your terminal commands." -msgstr "" +msgstr "Führen deine Terminalbefehle aus." #: WebTerminal/templates/WebTerminal/WebTerminal.html:26 #: baseTemplate/templates/baseTemplate/index.html:643 msgid "Web Terminal" -msgstr "" +msgstr "Web Terminal" #: WebTerminal/templates/WebTerminal/WebTerminal.html:28 msgid "Reboot SSH Server" -msgstr "" +msgstr "SSH Server neu starten" #: backup/templates/backup/backup.html:15 msgid "This page can be used to Back up your websites" @@ -872,11 +849,13 @@ msgstr "Verbindung überprüfen" #: backup/templates/backup/backupSchedule.html:54 msgid "Local Path" -msgstr "" +msgstr "Lokaler Pfad" #: backup/templates/backup/backupSchedule.html:57 msgid "Local directory where backups will be moved after creation." msgstr "" +"Lokales Verzeichnis, in dem Sicherungen nach der Erstellung verschoben " +"werden." #: backup/templates/backup/backupSchedule.html:82 msgid "Cannot add schedule. Error message:" @@ -1501,16 +1480,12 @@ msgid "Create Nameserver" msgstr "Nameserver erstellen" #: baseTemplate/templates/baseTemplate/index.html:488 -#, fuzzy -#| msgid "Create Nameserver" msgid "Configure Default Nameservers" -msgstr "Nameserver erstellen" +msgstr "Konfigurieren von Standardnameservern" #: baseTemplate/templates/baseTemplate/index.html:488 -#, fuzzy -#| msgid "Create Nameserver" msgid "Config Default Nameservers" -msgstr "Nameserver erstellen" +msgstr "Konfiguriere Standardnameserver" #: baseTemplate/templates/baseTemplate/index.html:491 #: dns/templates/dns/createDNSZone.html:12 @@ -1647,43 +1622,31 @@ msgstr "Zielorte hinzufügen/löschen" #: baseTemplate/templates/baseTemplate/index.html:590 msgid "Incremental Back up - Beta" -msgstr "" +msgstr "Inkrementelles Sichern - Beta" #: baseTemplate/templates/baseTemplate/index.html:592 -#, fuzzy -#| msgid "Cancel Backup" msgid "Incremental Back up" -msgstr "Sicherung abbrechen" +msgstr "Inkrementelles Sichern" #: baseTemplate/templates/baseTemplate/index.html:598 -#, fuzzy -#| msgid "Restore Back up" msgid "Create/Restore Back up" -msgstr "Sicherung wiederherstellen" +msgstr "Sicherung erstellen/wiederherstellen" #: baseTemplate/templates/baseTemplate/index.html:601 -#, fuzzy -#| msgid "Add/Delete Destinations" msgid "Add/Remove Destinations" msgstr "Hinzufügen/Löschen von Zielorten" #: baseTemplate/templates/baseTemplate/index.html:604 -#, fuzzy -#| msgid "Schedule Back up" msgid "Schedule Back ups" msgstr "Sicherung planen" #: baseTemplate/templates/baseTemplate/index.html:607 -#, fuzzy -#| msgid "Transfer Websites from Remote Server - CyberPanel" msgid "Restore from Remote Server" -msgstr "Webseiten vom Remote-Server übertragen - CybaerPanel" +msgstr "Wiederherstellen vom Remote-Server" #: baseTemplate/templates/baseTemplate/index.html:607 -#, fuzzy -#| msgid "Restore Website" msgid "Restore from Remote" -msgstr "Webseite wiederherstellen" +msgstr "Wiederherstellen von Remote" #: baseTemplate/templates/baseTemplate/index.html:624 #: manageSSL/templates/manageSSL/index.html:29 @@ -1725,7 +1688,7 @@ msgstr "NEU" #: baseTemplate/templates/baseTemplate/index.html:650 msgid "Web Based Terminal" -msgstr "" +msgstr "Web Basiertes Terminal" #: baseTemplate/templates/baseTemplate/index.html:657 #: baseTemplate/templates/baseTemplate/index.html:659 @@ -2408,16 +2371,12 @@ msgid "Record Successfully Added." msgstr "Record erfolgreich hinzugefügt." #: dns/templates/dns/configureDefaultNameServers.html:3 -#, fuzzy -#| msgid "Create Nameserver - CyberPanel" msgid "Configure Default Nameserver - CyberPanel" -msgstr "Nameserver erstellen - CyberPanel" +msgstr "Konfigurieren von Standardnameserver - CyberPanel" #: dns/templates/dns/configureDefaultNameServers.html:12 -#, fuzzy -#| msgid "Create Nameserver" msgid "Configure Default Nameserver" -msgstr "Nameserver erstellen" +msgstr "Konfigurieren von Standardnameserver" #: dns/templates/dns/configureDefaultNameServers.html:13 #: dns/templates/dns/createNameServer.html:13 @@ -2439,22 +2398,16 @@ msgid "First Nameserver" msgstr "Erster Nameserver" #: dns/templates/dns/configureDefaultNameServers.html:45 -#, fuzzy -#| msgid "Second Nameserver (Back up)" msgid "Second Nameserver" -msgstr "Zweiter Nameserver (ersatz)" +msgstr "Zweiter Nameserver" #: dns/templates/dns/configureDefaultNameServers.html:52 -#, fuzzy -#| msgid "First Nameserver" msgid "Third Nameserver" -msgstr "Erster Nameserver" +msgstr "Dritter Nameserver" #: dns/templates/dns/configureDefaultNameServers.html:59 -#, fuzzy -#| msgid "First Nameserver" msgid "Forth Nameserver" -msgstr "Erster Nameserver" +msgstr "Vierter Nameserver" #: dns/templates/dns/configureDefaultNameServers.html:68 #: emailMarketing/templates/emailMarketing/website.html:656 @@ -3759,10 +3712,8 @@ msgstr "SpamAssassin Konfigurationen erfolgreich gespeichert." #: emailPremium/templates/emailPremium/emailLimits.html:13 #: emailPremium/templates/emailPremium/listDomains.html:14 #: emailPremium/templates/emailPremium/policyServer.html:13 -#, fuzzy -#| msgid "Emai Limits Docs" msgid "Email Limits Docs" -msgstr "E-Mai Limits Docs" +msgstr "E-Mail Limits Docs" #: emailPremium/templates/emailPremium/emailLimits.html:14 msgid "View and change email limits for a domain name." @@ -3832,7 +3783,7 @@ msgstr "Verwalten" #: emailPremium/templates/emailPremium/emailPage.html:13 msgid "Emai Limits Docs" -msgstr "E-Mai Limits Docs" +msgstr "E-Mai Grenzwerte Docs" #: emailPremium/templates/emailPremium/emailPage.html:14 msgid "View and change limits for an Email Address." @@ -4789,10 +4740,8 @@ msgstr "" "Mails." #: mailServer/templates/mailServer/emailForwarding.html:61 -#, fuzzy -#| msgid "Forwarding Docs" msgid "Forwarding Options" -msgstr "Weiterleitung Docs" +msgstr "Weiterleitungsoptionen" #: mailServer/templates/mailServer/emailForwarding.html:97 #: mailServer/templates/mailServer/emailForwarding.html:118 @@ -4801,7 +4750,7 @@ msgstr "Quelle" #: mailServer/templates/mailServer/emailForwarding.html:101 msgid "or path to the program" -msgstr "" +msgstr "oder Pfad zum Programm" #: mailServer/templates/mailServer/emailForwarding.html:106 msgid "Forward Email" @@ -5442,10 +5391,8 @@ msgid "Switch to LiteSpeed Enterprise Web Server" msgstr "Wechseln zu LiteSpeed Enterprise Web Server" #: serverStatus/templates/serverStatus/litespeedStatus.html:149 -#, fuzzy -#| msgid "LiteSpeed Processes" msgid "LiteSpeed Serial No. (License Key)" -msgstr "LiteSpeed Prozesse" +msgstr "LiteSpeed Seriennummer (Lizenzschlüssel)" #: serverStatus/templates/serverStatus/litespeedStatus.html:160 msgid "Switch" @@ -5453,7 +5400,7 @@ msgstr "Wechseln" #: serverStatus/templates/serverStatus/litespeedStatus.html:162 msgid "Get 15 Days Trial" -msgstr "" +msgstr "Erhalte eine 15 Tage Testversion" #: serverStatus/templates/serverStatus/litespeedStatus.html:175 msgid "" @@ -5461,6 +5408,9 @@ msgid "" "CyberPanel will auto fetch 15 days trial key for you. Make sure this server " "have not used trial already." msgstr "" +"Hinweis: Wenn die 15 Tage Testversion ausgewählt wird, muss der Serial key " +"nicht eingegeben werden, CyberPanel ruft automatisch den 15-Tage-Testkey ab. " +"Stelle sicher, dass dieser Server noch keine Testversion verwendet hat." #: serverStatus/templates/serverStatus/litespeedStatus.html:193 msgid "With great wisdom comes great responsibility." @@ -5970,10 +5920,8 @@ msgstr "Webseiten Grenzwerte" #: userManagment/templates/userManagment/createUser.html:107 #: userManagment/templates/userManagment/modifyUser.html:85 -#, fuzzy -#| msgid "Security" msgid "Security Level" -msgstr "Sicherheit" +msgstr "Sicherheitsstufe" #: userManagment/templates/userManagment/createUser.html:120 #: userManagment/templates/userManagment/index.html:49 @@ -6309,38 +6257,32 @@ msgid "Installation successful. Visit:" msgstr "Installation erfolgreich. Besuche:" #: websiteFunctions/templates/websiteFunctions/installMagento.html:3 -#, fuzzy -#| msgid "Install PrestaShop - CyberPanel" msgid "Install Magento - CyberPanel" -msgstr "PrestaShop installieren - CyberPanel" +msgstr "Magento installieren - CyberPanel" #: websiteFunctions/templates/websiteFunctions/installMagento.html:12 #: websiteFunctions/templates/websiteFunctions/launchChild.html:724 #: websiteFunctions/templates/websiteFunctions/launchChild.html:728 #: websiteFunctions/templates/websiteFunctions/website.html:1029 #: websiteFunctions/templates/websiteFunctions/website.html:1033 -#, fuzzy -#| msgid "Install Packages" msgid "Install Magento" -msgstr "Pakete installieren" +msgstr "Magento installieren" #: websiteFunctions/templates/websiteFunctions/installMagento.html:13 -#, fuzzy -#| msgid "One-click PrestaShop Install!" msgid "One-click Magento Install!" -msgstr "1-Klick PrestaShop Installation!" +msgstr "1-Klick Magento Installation!" #: websiteFunctions/templates/websiteFunctions/installMagento.html:51 -#, fuzzy -#| msgid "Username" msgid "Admin Username" -msgstr "用户名" +msgstr "Admin Benutzername" #: websiteFunctions/templates/websiteFunctions/installMagento.html:93 msgid "" "does not work on OpenLiteSpeed. It is highly recommended to use this " "installer with LiteSpeed Enterprise only." msgstr "" +"funktioniert nicht mit OpenLiteSpeed. Es wird dringend empfohlen, dieses " +"Installationsprogramm nur mit LiteSpeed Enterprise zu verwenden." #: websiteFunctions/templates/websiteFunctions/installPrestaShop.html:3 msgid "Install PrestaShop - CyberPanel" @@ -6387,7 +6329,7 @@ msgstr "WP + LSCache" #: websiteFunctions/templates/websiteFunctions/launchChild.html:729 #: websiteFunctions/templates/websiteFunctions/website.html:1034 msgid "Magento" -msgstr "" +msgstr "Magento" #: websiteFunctions/templates/websiteFunctions/listCron.html:3 msgid "Cron Management - CyberPanel" From 43eca57ff46417f82a81dbeefead804cbac83a6e Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 27 Apr 2020 11:26:11 +0500 Subject: [PATCH 092/240] bug fix: file permissions during upgrade --- filemanager/filemanager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/filemanager/filemanager.py b/filemanager/filemanager.py index 6a06c08cc..1b65d29a3 100755 --- a/filemanager/filemanager.py +++ b/filemanager/filemanager.py @@ -385,10 +385,10 @@ class FileManager: domainName = self.data['domainName'] website = Websites.objects.get(domain=domainName) - command = 'chown %s:%s %s' % (website.externalApp, website.externalApp, self.data['completePath'] + '/' + myfile.name) + command = 'chown %s:%s %s' % (website.externalApp, website.externalApp, self.returnPathEnclosed(self.data['completePath'] + '/' + myfile.name)) ProcessUtilities.executioner(command) - self.changeOwner(self.data['completePath'] + '/' + myfile.name) + self.changeOwner(self.returnPathEnclosed(self.data['completePath'] + '/' + myfile.name)) json_data = json.dumps(finalData) return HttpResponse(json_data) From ed0efbf9e04d0fc8d275068b685c7ab05d25a9f4 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 27 Apr 2020 16:18:46 +0500 Subject: [PATCH 093/240] minor fix for custom backup user --- backup/backupManager.py | 51 +++++++++++++------ .../templates/backup/backupDestinations.html | 14 ++--- plogical/backupUtilities.py | 25 +++++++-- 3 files changed, 64 insertions(+), 26 deletions(-) diff --git a/backup/backupManager.py b/backup/backupManager.py index 161a645ad..f7181f4ca 100755 --- a/backup/backupManager.py +++ b/backup/backupManager.py @@ -407,46 +407,65 @@ class BackupManager: destinations = backupUtil.backupUtilities.destinationsPath - ipAddress = data['IPAddress'] - password = data['password'] + finalDic = {} + + finalDic['ipAddress'] = data['IPAddress'] + finalDic['password'] = data['password'] + + try: + finalDic['port'] = data['backupSSHPort'] + except: + finalDic['port'] = "22" + + try: + finalDic['user'] = data['user'] + except: + finalDic['user'] = "root" if dest.objects.all().count() == 2: + final_dic = {'destStatus': 0, 'error_message': "Currently only one remote destination is allowed."} final_json = json.dumps(final_dic) return HttpResponse(final_json) + try: - d = dest.objects.get(destLoc=ipAddress) + d = dest.objects.get(destLoc=finalDic['password']) final_dic = {'destStatus': 0, 'error_message': "This destination already exists."} final_json = json.dumps(final_dic) return HttpResponse(final_json) except: - try: - port = data['backupSSHPort'] - except: - port = "22" - execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py" - execPath = execPath + " submitDestinationCreation --ipAddress " + ipAddress + " --password " \ - + password + " --port " + port + execPath = execPath + " submitDestinationCreation --ipAddress " + finalDic['ipAddress'] + " --password " \ + + finalDic['password'] + " --port " + finalDic['port'] + ' --user %s' % (finalDic['user']) + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(execPath) output = ProcessUtilities.outputExecutioner(execPath) + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(output) + + if output.find('1,') > -1: try: writeToFile = open(destinations, "w") - writeToFile.writelines(ipAddress + "\n") - writeToFile.writelines(data['backupSSHPort'] + "\n") + writeToFile.write(json.dumps(finalDic)) writeToFile.close() - newDest = dest(destLoc=ipAddress) + newDest = dest(destLoc=finalDic['ipAddress']) newDest.save() + + final_dic = {'destStatus': 1, 'error_message': "None"} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) except: writeToFile = open(destinations, "w") - writeToFile.writelines(ipAddress + "\n") - writeToFile.writelines("22" + "\n") + writeToFile.write(json.dumps(finalDic)) writeToFile.close() - newDest = dest(destLoc=ipAddress) + + newDest = dest(destLoc=finalDic['ipAddress']) newDest.save() final_dic = {'destStatus': 1, 'error_message': "None"} diff --git a/backup/templates/backup/backupDestinations.html b/backup/templates/backup/backupDestinations.html index 9667803ed..5ab7e5ad9 100755 --- a/backup/templates/backup/backupDestinations.html +++ b/backup/templates/backup/backupDestinations.html @@ -33,6 +33,13 @@
+
+ +
+ +
+
+
@@ -48,13 +55,6 @@
-
- -
- -
-
-
diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 886e0f67f..a017d410a 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -928,6 +928,9 @@ class backupUtilities: command = "scp -o StrictHostKeyChecking=no -P " + port + " /root/.ssh/cyberpanel.pub " + user + "@" + IPAddress + ":~/.ssh/authorized_keys" setupKeys = pexpect.spawn(command, timeout=3) + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + index = setupKeys.expect(expectation) ## on first login attempt send password @@ -981,6 +984,9 @@ class backupUtilities: command = "ssh -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp"' setupKeys = pexpect.spawn(command, timeout=3) + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + index = setupKeys.expect(expectation) ## on first login attempt send password @@ -1040,10 +1046,11 @@ class backupUtilities: try: try: + import json destinations = backupUtilities.destinationsPath - data = open(destinations, 'r').readlines() - port = data[1].strip("\n") - user = data[2].strip("\n") + data = json.loads(open(destinations, 'r').read()) + port = data['port'] + user = data['user'] except: port = "22" @@ -1160,12 +1167,24 @@ class backupUtilities: try: command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + " mkdir ~/backup" + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + subprocess.call(shlex.split(command)) command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_keys ~/.ssh/temp > ~/.ssh/authorized_temp"' + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + subprocess.call(shlex.split(command)) command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_temp > ~/.ssh/authorized_keys"' + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + subprocess.call(shlex.split(command)) except BaseException as msg: From 9bcf437e7d193709f194360e0ad67621b531bc12 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 27 Apr 2020 21:01:28 +0500 Subject: [PATCH 094/240] fix missing password --- plogical/backupSchedule.py | 15 +++++++++------ plogical/backupUtilities.py | 11 +++++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 48d9a1ef2..0a87c8e04 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -219,13 +219,16 @@ class backupSchedule: ## IP of Remote server. - data = open(destinations,'r').readlines() - ipAddress = data[0].strip("\n") - port = data[1].strip("\n") - user = data[2].strip("\n") + destinations = backupUtilities.destinationsPath + data = json.loads(open(destinations, 'r').read()) + port = data['port'] - # Set the user to root if not specified aka empty - user = user if bool(user) is not False else 'root' + try: + user = data['user'] + except: + user = 'root' + + ipAddress = data['ipAddress'] ## IPAddress of local server diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index a017d410a..d936b0c60 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -1042,7 +1042,7 @@ class backupUtilities: logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[checkIfHostIsUp]") @staticmethod - def checkConnection(IPAddress, password, port='22', user='root'): + def checkConnection(IPAddress, port='22', user='root'): try: try: @@ -1061,9 +1061,12 @@ class backupUtilities: expectation.append(pexpect.EOF) expectation.append(pexpect.TIMEOUT) - checkConn = pexpect.spawn( - "sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress, - timeout=3) + command = "sudo ssh -i /root/.ssh/cyberpanel -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + + checkConn = pexpect.spawn(command,timeout=3) index = checkConn.expect(expectation) if index == 0: From 6a9c774fcb78f30744af915364673878a36d59ed Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 28 Apr 2020 17:51:31 +0500 Subject: [PATCH 095/240] increase backup file holder name size --- plogical/backupUtilities.py | 20 ++++++++++---------- plogical/upgrade.py | 5 +++++ websiteFunctions/models.py | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index d936b0c60..59f62b16f 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -480,25 +480,25 @@ class backupUtilities: rmtree(tempStoragePath) ### - backupFileNamePath = os.path.join(backupPath, "backupFileName") - fileName = open(backupFileNamePath, 'r').read() - backupObs = Backups.objects.filter(fileName=fileName) + backupObs = Backups.objects.filter(fileName=backupName) ## adding backup data to database. + + filePath = '%s/%s.tar.gz' % (backupPath, backupName) + totalSize = '%sMB' % (str(int(os.path.getsize(filePath) / 1048576))) + try: for items in backupObs: items.status = 1 - items.size = str(int(float( - os.path.getsize(os.path.join(backupPath, backupName + ".tar.gz"))) / ( - 1024.0 * 1024.0))) + "MB" + items.size = totalSize items.save() - except: + logging.CyberCPLogFileWriter.writeToFile(' again size: %s' % (totalSize)) + except BaseException as msg: + logging.CyberCPLogFileWriter.writeToFile('%s. [backupRoot:499]' % str(msg)) for items in backupObs: items.status = 1 - items.size = str(int(float( - os.path.getsize(os.path.join(backupPath, backupName + ".tar.gz"))) / ( - 1024.0 * 1024.0))) + "MB" + items.size = totalSize items.save() command = 'chmod 600 %s' % (os.path.join(backupPath, backupName + ".tar.gz")) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 427092015..f200bd53b 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -579,6 +579,11 @@ class Upgrade: except: pass + try: + cursor.execute("ALTER TABLE websiteFunctions_backups MODIFY fileName varchar(200)") + except: + pass + try: cursor.execute("ALTER TABLE loginSystem_acl ADD COLUMN listUsers INT DEFAULT 0;") diff --git a/websiteFunctions/models.py b/websiteFunctions/models.py index 9206d125d..93ebc01f1 100755 --- a/websiteFunctions/models.py +++ b/websiteFunctions/models.py @@ -29,7 +29,7 @@ class ChildDomains(models.Model): class Backups(models.Model): website = models.ForeignKey(Websites,on_delete=models.CASCADE) - fileName = models.CharField(max_length=50) + fileName = models.CharField(max_length=200) date = models.CharField(max_length=50) size = models.CharField(max_length=50) status = models.IntegerField(default=0) From 8d2f95b8be8b680191f95e6c5adbde57b1653155 Mon Sep 17 00:00:00 2001 From: Linunaut Date: Tue, 28 Apr 2020 21:20:12 +0200 Subject: [PATCH 096/240] German Translation Updated Version - German Translation. --- locale/de/LC_MESSAGES/django.mo | Bin 93372 -> 93411 bytes locale/de/LC_MESSAGES/django.po | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 273cf450a68a0d13c0536adf70af0bfb4fe1ad0a..582c894943f4cf516d7fa33cd4148e6762fdb8dc 100644 GIT binary patch delta 10102 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 delta 10049 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 EA16`yIsgCw diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 6de601011..e72bb03e4 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,9 +8,9 @@ msgstr "" "Project-Id-Version: CyberPanel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-21 19:54+0500\n" -"PO-Revision-Date: 2020-04-26 22:47+0200\n" -"Last-Translator: \n" -"Language-Team: GERMAN \n" +"PO-Revision-Date: 2020-04-28 21:19+0200\n" +"Last-Translator: Linunaut \n" +"Language-Team: Linunaut \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" From 3f1468c6735dab5d5d7fc817cc6622f01343de78 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 29 Apr 2020 04:46:01 +0500 Subject: [PATCH 097/240] bug fix: add incremental destination --- IncBackups/views.py | 8 +++++++- cyberpanel_upgrade.sh | 1 + plogical/backupSchedule.py | 3 +++ plogical/backupUtilities.py | 1 - static/backup/backup.js | 3 ++- static/filemanager/js/fileManager.js | 1 - 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/IncBackups/views.py b/IncBackups/views.py index 9ba6b1afc..4739c04cb 100644 --- a/IncBackups/views.py +++ b/IncBackups/views.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: utaddDestinationf-8 -*- from django.shortcuts import render from plogical.acl import ACLManager @@ -102,8 +102,14 @@ def addDestination(request): execPath = execPath + " submitDestinationCreation --ipAddress " + ipAddress + " --password " \ + password + " --port " + port + if os.path.exists(ProcessUtilities.debugPath): + logging.writeToFile(execPath) + output = ProcessUtilities.outputExecutioner(execPath) + if os.path.exists(ProcessUtilities.debugPath): + logging.writeToFile(output) + if output.find('1,') > -1: content = '%s\n%s' % (ipAddress, port) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index d833ba5f6..4348c73f2 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -159,6 +159,7 @@ check_root echo -e "\nChecking OS..." OUTPUT=$(cat /etc/*release) + if echo $OUTPUT | grep -q "CentOS Linux 7" ; then echo -e "\nDetecting CentOS 7.X...\n" SERVER_OS="CentOS7" diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 0a87c8e04..eba989f92 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -196,6 +196,9 @@ class backupSchedule: command = "sudo scp -o StrictHostKeyChecking=no -P "+port+" -i /root/.ssh/cyberpanel " + backupPath + " " + user + "@" + IPAddress+":~/backup/" + ipAddressLocal + "/" + time.strftime("%a-%b") + "/" subprocess.call(shlex.split(command), stdout=writeToFile) + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile(command) + ## Remove backups already sent to remote destinations os.remove(backupPath) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 59f62b16f..882e32dfb 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -493,7 +493,6 @@ class backupUtilities: items.status = 1 items.size = totalSize items.save() - logging.CyberCPLogFileWriter.writeToFile(' again size: %s' % (totalSize)) except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile('%s. [backupRoot:499]' % str(msg)) for items in backupObs: diff --git a/static/backup/backup.js b/static/backup/backup.js index 9c158422b..a41fffb41 100644 --- a/static/backup/backup.js +++ b/static/backup/backup.js @@ -416,7 +416,7 @@ app.controller('restoreWebsiteControl', function ($scope, $http, $timeout) { }); -//*** Resotre site ends here ***/// +//*** Restore site ends here ***/// ///** Backup Destination ***// @@ -448,6 +448,7 @@ app.controller('backupDestinations', function ($scope, $http, $timeout) { var data = { IPAddress: $scope.IPAddress, password: $scope.password, + user: $scope.user, backupSSHPort: $scope.backupSSHPort, }; diff --git a/static/filemanager/js/fileManager.js b/static/filemanager/js/fileManager.js index 725224dbb..19e175118 100644 --- a/static/filemanager/js/fileManager.js +++ b/static/filemanager/js/fileManager.js @@ -1479,7 +1479,6 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader, // Download files $scope.downloadFile = function () { - url = "/filemanager/downloadFile"; var downloadURL = $scope.currentPath + "/" + allFilesAndFolders[0]; window.location.href = url + '?domainName=' + domainName + '&fileToDownload=' + downloadURL; From f54b8fb43a11ea3d8141195311e79657b7474427 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 29 Apr 2020 04:55:33 +0500 Subject: [PATCH 098/240] restore encoding --- IncBackups/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IncBackups/views.py b/IncBackups/views.py index 4739c04cb..fe229f0c9 100644 --- a/IncBackups/views.py +++ b/IncBackups/views.py @@ -1,4 +1,4 @@ -# -*- coding: utaddDestinationf-8 -*- +# -*- coding: utf-8 -*- from django.shortcuts import render from plogical.acl import ACLManager @@ -100,7 +100,7 @@ def addDestination(request): execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py" execPath = execPath + " submitDestinationCreation --ipAddress " + ipAddress + " --password " \ - + password + " --port " + port + + password + " --port " + port + ' --user %s' % ('root') if os.path.exists(ProcessUtilities.debugPath): logging.writeToFile(execPath) From 1e7ffe679bfa200fdcf1998d264845f49ba9e301 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 29 Apr 2020 20:08:08 +0500 Subject: [PATCH 099/240] birth of package manager --- .../templates/baseTemplate/index.html | 3 + .../serverStatus/packageManager.html | 81 +++++++++++++++++++ serverStatus/urls.py | 1 + serverStatus/views.py | 22 ++++- 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100755 serverStatus/templates/serverStatus/packageManager.html diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index 789de56ea..7b1c21a37 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -765,6 +765,9 @@
  • {% trans "Services Status" %}
  • +
  • {% trans "Package Manager" %} +
  • diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html new file mode 100755 index 000000000..021cf834e --- /dev/null +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -0,0 +1,81 @@ +{% extends "baseTemplate/index.html" %} +{% load i18n %} +{% block title %}{% trans "Package Manager - CyberPanel" %}{% endblock %} +{% block content %} + + {% load static %} + {% get_current_language as LANGUAGE_CODE %} + + + +
    + +
    +

    {% trans "Package Manager" %}

    +

    {% trans "On this page you can manage your system packages. On backend system available package manager is used (apt/yum)." %}

    +
    + +
    +
    +
    +
    + +
    + +
    +
    +

    I'm in Section 1.

    +
    +
    +

    Howdy, I'm in Section 2.

    +
    +
    +

    Howdy, I'm in Section 3.

    +
    +
    +

    Howdy, I'm in Section 4.

    +
    +
    +

    Howdy, I'm in Section 5.

    +
    +
    +

    Howdy, I'm in Section 6.

    +
    +
    +

    Howdy, I'm in Section 7.

    +
    +
    +

    Howdy, I'm in Section 8.

    +
    +
    +

    Howdy, I'm in Section 9.

    +
    +
    +
    +
    +
    +
    +
    +
    + + +{% endblock %} diff --git a/serverStatus/urls.py b/serverStatus/urls.py index cdd1224e0..43ffa605b 100755 --- a/serverStatus/urls.py +++ b/serverStatus/urls.py @@ -18,5 +18,6 @@ urlpatterns = [ url(r'^topProcesses$', views.topProcesses, name='topProcesses'), url(r'^topProcessesStatus$', views.topProcessesStatus, name='topProcessesStatus'), url(r'^killProcess$', views.killProcess, name='killProcess'), + url(r'^packageManager$', views.packageManager, name='packageManager'), ] \ No newline at end of file diff --git a/serverStatus/views.py b/serverStatus/views.py index dae87051e..b0fe234b1 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -505,7 +505,6 @@ def topProcesses(request): logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[litespeedStatus]") return redirect(loadLoginPage) - def topProcessesStatus(request): try: userID = request.session['userID'] @@ -628,7 +627,6 @@ def topProcessesStatus(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) - def killProcess(request): try: userID = request.session['userID'] @@ -656,4 +654,22 @@ def killProcess(request): except KeyError as msg: final_dic = {'status': 0, 'erroMessage': str(msg)} final_json = json.dumps(final_dic) - return HttpResponse(final_json) \ No newline at end of file + return HttpResponse(final_json) + +def packageManager(request): + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadError() + + templateName = "serverStatus/packageManager.html" + proc = httpProc(request, templateName) + return proc.renderPre() + + except KeyError as msg: + logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[packageManager]") + return redirect(loadLoginPage) \ No newline at end of file From 2eadbd393f5eb906f12955afa475acbc12eaeeaf Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 30 Apr 2020 18:18:48 +0500 Subject: [PATCH 100/240] show packs on packages manager --- .../static/serverStatus/serverStatus.js | 152 ++++++++++++++---- .../serverStatus/packageManager.html | 100 +++++++----- serverStatus/urls.py | 1 + serverStatus/views.py | 65 +++++++- websiteFunctions/website.py | 1 - 5 files changed, 246 insertions(+), 73 deletions(-) diff --git a/serverStatus/static/serverStatus/serverStatus.js b/serverStatus/static/serverStatus/serverStatus.js index db70955a0..476cde44d 100755 --- a/serverStatus/static/serverStatus/serverStatus.js +++ b/serverStatus/static/serverStatus/serverStatus.js @@ -3,7 +3,6 @@ */ - /* Java script code to start/stop litespeed */ app.controller('litespeedStatus', function ($scope, $http) { @@ -49,8 +48,7 @@ app.controller('litespeedStatus', function ($scope, $http) { $scope.actionResultBad = true; $scope.serverStatusCouldNotConnect = true; - } - else { + } else { $scope.restartorStopLoading = true; $scope.actionResult = true; @@ -109,8 +107,7 @@ app.controller('litespeedStatus', function ($scope, $http) { $scope.actionResultBad = true; $scope.serverStatusCouldNotConnect = true; - } - else { + } else { $scope.restartorStopLoading = true; $scope.actionResult = true; @@ -174,8 +171,7 @@ app.controller('litespeedStatus', function ($scope, $http) { }); $scope.lsSerial = response.data.lsSerial; $scope.lsexpiration = response.data.lsexpiration; - } - else { + } else { $scope.cpLoading = true; new PNotify({ title: 'Operation Failed!', @@ -229,8 +225,7 @@ app.controller('litespeedStatus', function ($scope, $http) { text: 'License successfully Updated', type: 'success' }); - } - else { + } else { $scope.cpLoading = true; new PNotify({ title: 'Operation Failed!', @@ -292,8 +287,7 @@ app.controller('readCyberCPLogFile', function ($scope, $http) { $scope.logsData = response.data.logsdata; - } - else { + } else { $scope.logFileLoading = true; $scope.logsFeteched = true; @@ -347,8 +341,7 @@ app.controller('readCyberCPLogFile', function ($scope, $http) { $scope.logsData = response.data.logsdata; - } - else { + } else { $scope.logFileLoading = true; $scope.logsFeteched = true; @@ -409,8 +402,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.olsStart = false; $scope.olsStop = true; $scope.olsMem = Math.round(parseInt(response.data.memUsage.litespeed) / 1048576) + " MB"; - } - else { + } else { $scope.olsStatus = "Stopped"; $scope.olsStats = false; $scope.olsStart = true; @@ -421,8 +413,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.dockerStatus = "Running"; $scope.dockerStart = false; $scope.dockerStop = true; - } - else { + } else { $scope.dockerStatus = "Stopped"; $scope.dockerStart = true; $scope.dockerStop = false; @@ -435,8 +426,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.sqlStart = false; $scope.sqlStop = true; $scope.sqlMem = Math.round(parseInt(response.data.memUsage.mysql) / 1048576) + " MB"; - } - else { + } else { $scope.sqlStatus = "Stopped"; $scope.sqlStats = false; $scope.sqlStart = true; @@ -451,8 +441,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.dnsStart = false; $scope.dnsStop = true; $scope.dnsMem = Math.round(parseInt(response.data.memUsage.powerdns) / 1048576) + " MB"; - } - else { + } else { $scope.dnsStatus = "Stopped"; $scope.dnsStats = false; $scope.dnsStart = true; @@ -467,8 +456,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.ftpStart = false; $scope.ftpStop = true; $scope.ftpMem = Math.round(parseInt(response.data.memUsage.pureftp) / 1048576) + " MB"; - } - else { + } else { $scope.ftpStatus = "Stopped"; $scope.ftpStats = false; $scope.ftpStart = true; @@ -487,6 +475,7 @@ app.controller('servicesManager', function ($scope, $http) { } } + getServiceStatus(); $scope.serviceAction = function (serviceName, action) { @@ -524,8 +513,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.actionLoader = false; $scope.btnDisable = false; }, 3000); - } - else { + } else { setTimeout(function () { getServiceStatus(); $scope.ActionSuccessfull = false; @@ -583,8 +571,7 @@ app.controller('lswsSwitch', function ($scope, $http, $timeout, $window) { if (response.data.status === 1) { $scope.installBoxGen = false; getRequestStatus(); - } - else { + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, @@ -626,8 +613,7 @@ app.controller('lswsSwitch', function ($scope, $http, $timeout, $window) { if (response.data.abort === 0) { $scope.requestData = response.data.requestStatus; $timeout(getRequestStatus, 1000); - } - else { + } else { // Notifications $scope.cyberPanelLoading = true; $timeout.cancel(); @@ -720,8 +706,7 @@ app.controller('topProcesses', function ($scope, $http, $timeout) { $scope.zombieProcesses = response.data.zombieProcesses; $timeout($scope.topProcessesStatus, 3000); - } - else { + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, @@ -771,8 +756,111 @@ app.controller('topProcesses', function ($scope, $http, $timeout) { text: 'Process successfully killed.', type: 'success' }); + } else { + new PNotify({ + title: 'Operation Failed!', + text: response.data.error_message, + type: 'error' + }); } - else { + + } + + function cantLoadInitialDatas(response) { + $scope.cyberPanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + }; + +}); + +/// + + +app.controller('listOSPackages', function ($scope, $http, $timeout) { + + $scope.cyberpanelLoading = true; + + $scope.currentPage = 1; + $scope.recordsToShow = 10; + + $scope.fetchPackages = function () { + $scope.cyberpanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + page: $scope.currentPage, + recordsToShow: $scope.recordsToShow + }; + + dataurl = "/serverstatus/fetchPackages"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + $scope.allPackages = JSON.parse(response.data.packages); + $scope.pagination = response.data.pagination; + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + $scope.killProcess = function (pid) { + + $scope.cyberPanelLoading = false; + + url = "/serverstatus/killProcess"; + + var data = { + pid: pid + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + $scope.cyberPanelLoading = true; + if (response.data.status === 1) { + new PNotify({ + title: 'Success', + text: 'Process successfully killed.', + type: 'success' + }); + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index 021cf834e..a91ac5373 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -8,7 +8,7 @@ -
    +

    {% trans "Package Manager" %}

    @@ -22,53 +22,77 @@
    -
    -

    I'm in Section 1.

    -
    -
    -

    Howdy, I'm in Section 2.

    -
    -
    -

    Howdy, I'm in Section 3.

    -

    Howdy, I'm in Section 4.

    -
    -

    Howdy, I'm in Section 5.

    -
    -

    Howdy, I'm in Section 6.

    +
    + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + +
    {% trans "Package" %}{% trans "Description" %}{% trans "Status" %}{% trans "Version" %}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +

    Howdy, I'm in Section 7.

    -
    -

    Howdy, I'm in Section 8.

    -
    -
    -

    Howdy, I'm in Section 9.

    -
    diff --git a/serverStatus/urls.py b/serverStatus/urls.py index 43ffa605b..65c60b533 100755 --- a/serverStatus/urls.py +++ b/serverStatus/urls.py @@ -19,5 +19,6 @@ urlpatterns = [ url(r'^topProcessesStatus$', views.topProcessesStatus, name='topProcessesStatus'), url(r'^killProcess$', views.killProcess, name='killProcess'), url(r'^packageManager$', views.packageManager, name='packageManager'), + url(r'^fetchPackages$', views.fetchPackages, name='fetchPackages'), ] \ No newline at end of file diff --git a/serverStatus/views.py b/serverStatus/views.py index b0fe234b1..08c7b376e 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -6,7 +6,7 @@ from django.http import HttpResponse import plogical.CyberCPLogFileWriter as logging from loginSystem.views import loadLoginPage import json -import subprocess +import subprocess, shlex import psutil import socket from plogical.acl import ACLManager @@ -672,4 +672,65 @@ def packageManager(request): except KeyError as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[packageManager]") - return redirect(loadLoginPage) \ No newline at end of file + return redirect(loadLoginPage) + +def fetchPackages(request): + try: + + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadError() + + data = json.loads(request.body) + page = int(data['page']) + recordsToShow = int(data['recordsToShow']) + + packageInformation = '/home/cyberpanel/OSPackages' + f = open(packageInformation, "w") + + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + command = 'dpkg-query -f \'{"status":"${db:Status-Abbrev}","package":"${binary:Package}","version":"${Version}","description":"${binary:Summary}"}\n\' -W' + subprocess.call(shlex.split(command), stdout=f) + + packages = ProcessUtilities.outputExecutioner('cat %s' % (packageInformation)).split('\n') + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile('All packages: %s' % (str(packages))) + + from s3Backups.s3Backups import S3Backups + + pagination = S3Backups.getPagination(len(packages), recordsToShow) + endPageNumber, finalPageNumber = S3Backups.recordsPointer(page, recordsToShow) + finalPackages = packages[finalPageNumber:endPageNumber] + + json_data = "[" + checker = 0 + + if os.path.exists(ProcessUtilities.debugPath): + logging.CyberCPLogFileWriter.writeToFile('Final packages: %s' % (str(finalPackages))) + + for items in finalPackages: + logging.CyberCPLogFileWriter.writeToFile(items) + try: + if checker == 0: + json_data = json_data + items + checker = 1 + else: + json_data = json_data + ',' + items + except: + logging.CyberCPLogFileWriter.writeToFile(items) + + json_data = json_data + ']' + + data_ret = {'status': 1, 'packages': json_data, 'pagination': pagination} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + except BaseException as msg: + data_ret = {'status': 0, 'error_message': str(msg)} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) \ No newline at end of file diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 68763d5df..996b9f48d 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -3613,7 +3613,6 @@ StrictHostKeyChecking no else: return ACLManager.loadErrorJson() - logging.CyberCPLogFileWriter.writeToFile('hello world 2') ## Security check From 874720fbfe44d28d11d6d2b7413933ef4f7d5f19 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 1 May 2020 23:05:04 +0500 Subject: [PATCH 101/240] bug fix: fetch packages --- serverStatus/views.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/serverStatus/views.py b/serverStatus/views.py index 08c7b376e..2fe1c11a2 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -686,7 +686,7 @@ def fetchPackages(request): return ACLManager.loadError() data = json.loads(request.body) - page = int(data['page']) + page = int(data['page'].rstrip('\n')) recordsToShow = int(data['recordsToShow']) packageInformation = '/home/cyberpanel/OSPackages' @@ -698,23 +698,24 @@ def fetchPackages(request): packages = ProcessUtilities.outputExecutioner('cat %s' % (packageInformation)).split('\n') - if os.path.exists(ProcessUtilities.debugPath): - logging.CyberCPLogFileWriter.writeToFile('All packages: %s' % (str(packages))) + # if os.path.exists(ProcessUtilities.debugPath): + # logging.CyberCPLogFileWriter.writeToFile('All packages: %s' % (str(packages))) from s3Backups.s3Backups import S3Backups pagination = S3Backups.getPagination(len(packages), recordsToShow) + logging.CyberCPLogFileWriter.writeToFile(str(pagination)) endPageNumber, finalPageNumber = S3Backups.recordsPointer(page, recordsToShow) finalPackages = packages[finalPageNumber:endPageNumber] json_data = "[" checker = 0 - if os.path.exists(ProcessUtilities.debugPath): - logging.CyberCPLogFileWriter.writeToFile('Final packages: %s' % (str(finalPackages))) - + # if os.path.exists(ProcessUtilities.debugPath): + # logging.CyberCPLogFileWriter.writeToFile('Final packages: %s' % (str(finalPackages))) + import re for items in finalPackages: - logging.CyberCPLogFileWriter.writeToFile(items) + items = re.sub(r'("[\s\w]*)"([\s\w])*"([\s\w]*)',r"\1\2\3", items) try: if checker == 0: json_data = json_data + items From c1f560001881a4337aee110c2c652604b31eb972 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 2 May 2020 17:51:01 +0500 Subject: [PATCH 102/240] bug fix: topProcessesStatus --- .../static/serverStatus/serverStatus.js | 2 + .../serverStatus/packageManager.html | 7 + serverStatus/views.py | 45 ++++- static/databases/databases.js | 6 +- static/ftp/ftp.js | 6 +- static/mailServer/mailServer.js | 6 +- static/serverStatus/serverStatus.js | 154 ++++++++++++++---- static/userManagment/userManagment.js | 6 +- version.txt | 2 +- 9 files changed, 181 insertions(+), 53 deletions(-) mode change 100755 => 100644 static/databases/databases.js diff --git a/serverStatus/static/serverStatus/serverStatus.js b/serverStatus/static/serverStatus/serverStatus.js index 476cde44d..5dca427db 100755 --- a/serverStatus/static/serverStatus/serverStatus.js +++ b/serverStatus/static/serverStatus/serverStatus.js @@ -812,6 +812,8 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { if (response.data.status === 1) { $scope.allPackages = JSON.parse(response.data.packages); $scope.pagination = response.data.pagination; + $scope.fetchedPackages = response.data.fetchedPackages; + $scope.totalPackages = response.data.totalPackages; } else { new PNotify({ title: 'Error!', diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index a91ac5373..c9d7afe9d 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -33,6 +33,12 @@

    Howdy, I'm in Section 4.

    diff --git a/serverStatus/views.py b/serverStatus/views.py index 2fe1c11a2..d7e605c40 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -579,17 +579,45 @@ def topProcessesStatus(request): data['Softirqs'] = loadNow[13] + '%' ## Memory - data['totalMemory'] = str(int(float(memory[3]) / 1024)) + 'MB' - data['freeMemory'] = str(int(float(memory[5]) / 1024)) + 'MB' - data['usedMemory'] = str(int(float(memory[7]) / 1024)) + 'MB' - data['buffCache'] = str(int(float(memory[9]) / 1024)) + 'MB' + + if memory[3].find('+') > -1: + memoryFinal = memory[3].split('+')[0] + else: + memoryFinal = memory[3] + + data['totalMemory'] = str(int(float(memoryFinal) / 1024)) + 'MB' + + ## + + if memory[5].find('free') > -1: + data['freeMemory'] = str(int(float(memory[4]) / 1024)) + 'MB' + else: + data['freeMemory'] = str(int(float(memory[5]) / 1024)) + 'MB' + + ## + + if memory[7].find('used') > -1: + data['usedMemory'] = str(int(float(memory[6]) / 1024)) + 'MB' + else: + data['usedMemory'] = str(int(float(memory[7]) / 1024)) + 'MB' + + if memory[9].find('buff') > -1: + data['buffCache'] = str(int(float(memory[8]) / 1024)) + 'MB' + else: + data['buffCache'] = str(int(float(memory[9]) / 1024)) + 'MB' ## Swap + data['swapTotalMemory'] = str(int(float(swap[2]) / 1024)) + 'MB' data['swapFreeMemory'] = str(int(float(swap[4]) / 1024)) + 'MB' data['swapUsedMemory'] = str(int(float(swap[6]) / 1024)) + 'MB' - data['swapBuffCache'] = str(int(float(swap[8]) / 1024)) + 'MB' + + if swap[8].find('+') > -1: + finalBuffCache = swap[8].split('+')[0] + data['swapBuffCache'] = str(int(float(finalBuffCache) / 1024)) + 'MB' + else: + data['swapBuffCache'] = str(int(float(swap[8]) / 1024)) + 'MB' ## Processes @@ -686,7 +714,7 @@ def fetchPackages(request): return ACLManager.loadError() data = json.loads(request.body) - page = int(data['page'].rstrip('\n')) + page = int(str(data['page']).rstrip('\n')) recordsToShow = int(data['recordsToShow']) packageInformation = '/home/cyberpanel/OSPackages' @@ -704,12 +732,12 @@ def fetchPackages(request): from s3Backups.s3Backups import S3Backups pagination = S3Backups.getPagination(len(packages), recordsToShow) - logging.CyberCPLogFileWriter.writeToFile(str(pagination)) endPageNumber, finalPageNumber = S3Backups.recordsPointer(page, recordsToShow) finalPackages = packages[finalPageNumber:endPageNumber] json_data = "[" checker = 0 + counter = 0 # if os.path.exists(ProcessUtilities.debugPath): # logging.CyberCPLogFileWriter.writeToFile('Final packages: %s' % (str(finalPackages))) @@ -717,6 +745,7 @@ def fetchPackages(request): for items in finalPackages: items = re.sub(r'("[\s\w]*)"([\s\w])*"([\s\w]*)',r"\1\2\3", items) try: + counter = counter + 1 if checker == 0: json_data = json_data + items checker = 1 @@ -727,7 +756,7 @@ def fetchPackages(request): json_data = json_data + ']' - data_ret = {'status': 1, 'packages': json_data, 'pagination': pagination} + data_ret = {'status': 1, 'packages': json_data, 'pagination': pagination, 'fetchedPackages': counter, 'totalPackages': len(packages)} json_data = json.dumps(data_ret) return HttpResponse(json_data) diff --git a/static/databases/databases.js b/static/databases/databases.js old mode 100755 new mode 100644 index e13d25977..d1e91175b --- a/static/databases/databases.js +++ b/static/databases/databases.js @@ -106,7 +106,7 @@ app.controller('createDatabase', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.dbPassword = randomPassword(12); + $scope.dbPassword = randomPassword(16); }; $scope.usePassword = function () { @@ -447,7 +447,7 @@ app.controller('listDBs', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.dbPassword = randomPassword(12); + $scope.dbPassword = randomPassword(16); }; $scope.usePassword = function () { @@ -493,4 +493,4 @@ app.controller('phpMyAdmin', function ($scope, $http, $window) { } setupPHPMYAdminSession(); -}); \ No newline at end of file +}); diff --git a/static/ftp/ftp.js b/static/ftp/ftp.js index 679a8b5f7..a80377e6b 100644 --- a/static/ftp/ftp.js +++ b/static/ftp/ftp.js @@ -113,7 +113,7 @@ app.controller('createFTPAccount', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.ftpPassword = randomPassword(12); + $scope.ftpPassword = randomPassword(16); }; $scope.usePassword = function () { @@ -451,11 +451,11 @@ app.controller('listFTPAccounts', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.ftpPassword = randomPassword(12); + $scope.ftpPassword = randomPassword(16); }; $scope.usePassword = function () { $scope.generatedPasswordView = true; }; -}); \ No newline at end of file +}); diff --git a/static/mailServer/mailServer.js b/static/mailServer/mailServer.js index f50b36a45..3bf1db1c3 100644 --- a/static/mailServer/mailServer.js +++ b/static/mailServer/mailServer.js @@ -110,7 +110,7 @@ app.controller('createEmailAccount', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.emailPassword = randomPassword(12); + $scope.emailPassword = randomPassword(16); }; $scope.usePassword = function () { @@ -465,7 +465,7 @@ app.controller('changeEmailPassword', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.emailPassword = randomPassword(12); + $scope.emailPassword = randomPassword(16); }; $scope.usePassword = function () { @@ -1291,4 +1291,4 @@ app.controller('listEmails', function ($scope, $http) { }); -/* Java script code for List Emails Ends here */ \ No newline at end of file +/* Java script code for List Emails Ends here */ diff --git a/static/serverStatus/serverStatus.js b/static/serverStatus/serverStatus.js index db70955a0..5dca427db 100644 --- a/static/serverStatus/serverStatus.js +++ b/static/serverStatus/serverStatus.js @@ -3,7 +3,6 @@ */ - /* Java script code to start/stop litespeed */ app.controller('litespeedStatus', function ($scope, $http) { @@ -49,8 +48,7 @@ app.controller('litespeedStatus', function ($scope, $http) { $scope.actionResultBad = true; $scope.serverStatusCouldNotConnect = true; - } - else { + } else { $scope.restartorStopLoading = true; $scope.actionResult = true; @@ -109,8 +107,7 @@ app.controller('litespeedStatus', function ($scope, $http) { $scope.actionResultBad = true; $scope.serverStatusCouldNotConnect = true; - } - else { + } else { $scope.restartorStopLoading = true; $scope.actionResult = true; @@ -174,8 +171,7 @@ app.controller('litespeedStatus', function ($scope, $http) { }); $scope.lsSerial = response.data.lsSerial; $scope.lsexpiration = response.data.lsexpiration; - } - else { + } else { $scope.cpLoading = true; new PNotify({ title: 'Operation Failed!', @@ -229,8 +225,7 @@ app.controller('litespeedStatus', function ($scope, $http) { text: 'License successfully Updated', type: 'success' }); - } - else { + } else { $scope.cpLoading = true; new PNotify({ title: 'Operation Failed!', @@ -292,8 +287,7 @@ app.controller('readCyberCPLogFile', function ($scope, $http) { $scope.logsData = response.data.logsdata; - } - else { + } else { $scope.logFileLoading = true; $scope.logsFeteched = true; @@ -347,8 +341,7 @@ app.controller('readCyberCPLogFile', function ($scope, $http) { $scope.logsData = response.data.logsdata; - } - else { + } else { $scope.logFileLoading = true; $scope.logsFeteched = true; @@ -409,8 +402,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.olsStart = false; $scope.olsStop = true; $scope.olsMem = Math.round(parseInt(response.data.memUsage.litespeed) / 1048576) + " MB"; - } - else { + } else { $scope.olsStatus = "Stopped"; $scope.olsStats = false; $scope.olsStart = true; @@ -421,8 +413,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.dockerStatus = "Running"; $scope.dockerStart = false; $scope.dockerStop = true; - } - else { + } else { $scope.dockerStatus = "Stopped"; $scope.dockerStart = true; $scope.dockerStop = false; @@ -435,8 +426,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.sqlStart = false; $scope.sqlStop = true; $scope.sqlMem = Math.round(parseInt(response.data.memUsage.mysql) / 1048576) + " MB"; - } - else { + } else { $scope.sqlStatus = "Stopped"; $scope.sqlStats = false; $scope.sqlStart = true; @@ -451,8 +441,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.dnsStart = false; $scope.dnsStop = true; $scope.dnsMem = Math.round(parseInt(response.data.memUsage.powerdns) / 1048576) + " MB"; - } - else { + } else { $scope.dnsStatus = "Stopped"; $scope.dnsStats = false; $scope.dnsStart = true; @@ -467,8 +456,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.ftpStart = false; $scope.ftpStop = true; $scope.ftpMem = Math.round(parseInt(response.data.memUsage.pureftp) / 1048576) + " MB"; - } - else { + } else { $scope.ftpStatus = "Stopped"; $scope.ftpStats = false; $scope.ftpStart = true; @@ -487,6 +475,7 @@ app.controller('servicesManager', function ($scope, $http) { } } + getServiceStatus(); $scope.serviceAction = function (serviceName, action) { @@ -524,8 +513,7 @@ app.controller('servicesManager', function ($scope, $http) { $scope.actionLoader = false; $scope.btnDisable = false; }, 3000); - } - else { + } else { setTimeout(function () { getServiceStatus(); $scope.ActionSuccessfull = false; @@ -583,8 +571,7 @@ app.controller('lswsSwitch', function ($scope, $http, $timeout, $window) { if (response.data.status === 1) { $scope.installBoxGen = false; getRequestStatus(); - } - else { + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, @@ -626,8 +613,7 @@ app.controller('lswsSwitch', function ($scope, $http, $timeout, $window) { if (response.data.abort === 0) { $scope.requestData = response.data.requestStatus; $timeout(getRequestStatus, 1000); - } - else { + } else { // Notifications $scope.cyberPanelLoading = true; $timeout.cancel(); @@ -720,8 +706,7 @@ app.controller('topProcesses', function ($scope, $http, $timeout) { $scope.zombieProcesses = response.data.zombieProcesses; $timeout($scope.topProcessesStatus, 3000); - } - else { + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, @@ -771,8 +756,113 @@ app.controller('topProcesses', function ($scope, $http, $timeout) { text: 'Process successfully killed.', type: 'success' }); + } else { + new PNotify({ + title: 'Operation Failed!', + text: response.data.error_message, + type: 'error' + }); } - else { + + } + + function cantLoadInitialDatas(response) { + $scope.cyberPanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + }; + +}); + +/// + + +app.controller('listOSPackages', function ($scope, $http, $timeout) { + + $scope.cyberpanelLoading = true; + + $scope.currentPage = 1; + $scope.recordsToShow = 10; + + $scope.fetchPackages = function () { + $scope.cyberpanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + page: $scope.currentPage, + recordsToShow: $scope.recordsToShow + }; + + dataurl = "/serverstatus/fetchPackages"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + $scope.allPackages = JSON.parse(response.data.packages); + $scope.pagination = response.data.pagination; + $scope.fetchedPackages = response.data.fetchedPackages; + $scope.totalPackages = response.data.totalPackages; + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + $scope.killProcess = function (pid) { + + $scope.cyberPanelLoading = false; + + url = "/serverstatus/killProcess"; + + var data = { + pid: pid + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + $scope.cyberPanelLoading = true; + if (response.data.status === 1) { + new PNotify({ + title: 'Success', + text: 'Process successfully killed.', + type: 'success' + }); + } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, diff --git a/static/userManagment/userManagment.js b/static/userManagment/userManagment.js index 39cbf5d6d..73eaed9a5 100644 --- a/static/userManagment/userManagment.js +++ b/static/userManagment/userManagment.js @@ -113,7 +113,7 @@ app.controller('createUserCtr', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.password = randomPassword(12); + $scope.password = randomPassword(16); }; $scope.usePassword = function () { @@ -342,7 +342,7 @@ app.controller('modifyUser', function ($scope, $http) { $scope.generatePassword = function () { $scope.generatedPasswordView = false; - $scope.password = randomPassword(12); + $scope.password = randomPassword(16); }; $scope.usePassword = function () { @@ -1744,4 +1744,4 @@ app.controller('listTableUsers', function ($scope, $http) { }); -/* Java script code to list table users */ \ No newline at end of file +/* Java script code to list table users */ diff --git a/version.txt b/version.txt index ca1e53142..c085faed0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -{"version":"2.0","build":0} \ No newline at end of file +{"version":"2.0","build":1} \ No newline at end of file From b20af734dd132cbf4f2c9ab1d6553b7826b08a12 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 3 May 2020 11:59:36 +0500 Subject: [PATCH 103/240] feature: load website preview --- api/views.py | 1 - .../templates/websiteFunctions/listChildDomains.html | 2 +- .../templates/websiteFunctions/listWebsites.html | 6 ++---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/api/views.py b/api/views.py index e80fa5927..771ab5eb4 100755 --- a/api/views.py +++ b/api/views.py @@ -593,7 +593,6 @@ def runAWSBackups(request): except BaseException as msg: logging.writeToFile(str(msg) + ' [API.runAWSBackups]') - @csrf_exempt def submitUserCreation(request): try: diff --git a/websiteFunctions/templates/websiteFunctions/listChildDomains.html b/websiteFunctions/templates/websiteFunctions/listChildDomains.html index 668a9e0e6..518a976e6 100755 --- a/websiteFunctions/templates/websiteFunctions/listChildDomains.html +++ b/websiteFunctions/templates/websiteFunctions/listChildDomains.html @@ -41,7 +41,7 @@ style="padding: 0px; box-shadow: 0px 0px 1px 0px #888888;">
    -
    -
    + class="col-lg-3 col-md-12">
    From ac40a5eaaea24684749d33c4d255ab13e6e00bc3 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 3 May 2020 10:35:06 +0100 Subject: [PATCH 104/240] mailscanner mailwatch installer combined installer for centos 7 and ubuntu 18 --- CLScript/mailscannerinstaller.sh | 182 +++++++++++++++++++++++++++++++ install/cyberpanel.repo | 9 +- 2 files changed, 187 insertions(+), 4 deletions(-) create mode 100644 CLScript/mailscannerinstaller.sh diff --git a/CLScript/mailscannerinstaller.sh b/CLScript/mailscannerinstaller.sh new file mode 100644 index 000000000..852695d55 --- /dev/null +++ b/CLScript/mailscannerinstaller.sh @@ -0,0 +1,182 @@ +#!/bin/bash +systemctl stop firewalld + +MAILSCANNER=/etc/MailScanner + +if [ -d $MAILSCANNER ];then + +echo "MailScanner found. If you wish to reinstall then remove the package and revert" +echo "Postfix back to its original config at /etc/postfix/main.cf and remove" +echo "/etc/MailScanner and /usr/share/MailScanner directories" +exit +fi + +if [ -f /etc/os-release ];then + ./etc/os-release +OS=$NAME +fi + +if [ "$OS" == "CentOS Linux" ];then + +setenforce 0 + +yum install -y yum-utils perl-CPAN gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive-Zip perl-Filesys-Df perl-OLE-Storage_Lite perl-Sys-Hostname-Long perl-Sys-SigAction perl-Net-CIDR perl-DBI perl-MIME-tools perl-DBD-SQLite binutils glibc-devel perl-Filesys-Df zlib unzip zlib-devel wget mlocate clamav "perl(DBD::mysql)" + +rpm -Uvh https://forensics.cert.org/centos/cert/7/x86_64/unrar-5.4.0-1.el7.x86_64.rpm + +export PERL_MM_USE_DEFAULT=1 +curl -L https://cpanmin.us | perl - App::cpanminus +cpanm Encoding::FixLatin +cpanm Digest::SHA1 +cpanm Geo::IP +cpanm Razor2::Client::Agent +cpanm Net::Patricia + +freshclam -v + +DIR=/etc/mail/spamassassin + +if [ -d "$DIR" ]; then +sa-update + +else + +echo "Please install spamassassin through the CyberPanel interface before proceeding" + +exit +fi + +else + +apt-get install -y libmysqlclient-dev + +apt-get install -y cpanminus gcc perl bzip2 zip make patch automake rpm libarchive-zip-perl libfilesys-df-perl libole-storage-lite-perl libsys-hostname-long-perl libsys-sigaction-perl libregexp-common-net-cidr-perl libmime-tools-perl libdbd-sqlite3-perl binutils build-essential libfilesys-df-perl zlib1g unzip mlocate clamav libdbd-mysql-perl unrar libclamav-dev libclamav-client-perl libclamunrar7 + +cpanm Encoding::FixLatin +cpanm Digest::SHA1 +cpanm Geo::IP +cpanm Razor2::Client::Agent +cpanm Net::Patricia +cpanm Net::CIDR + +sudo systemctl stop clamav-freshclam.service + +freshclam + +sudo systemctl start clamav-freshclam.service + +DIR=/etc/spamassassin +if [ -d "$DIR" ]; then + +apt-get -y install razor pyzor libencode-detect-perl libgeo-ip-perl libnet-patricia-perl +sa-update +else +echo "Please install spamassassin through the CyberPanel interface before proceeding" +exit +fi +fi + + +echo "header_checks = regexp:/etc/postfix/header_checks" >> /etc/postfix/main.cf +echo "/^Received:/ HOLD" >> /etc/postfix/header_checks + +systemctl restart postfix + +wget https://github.com/MailScanner/v5/archive/master.zip +unzip master.zip + +cd /root/v5-master/builds + +if [ "$OS" == "CentOS Linux" ];then +rpm -Uvh *.rhel.noarch.rpm +else +dpkg -i *.noarch.deb + + +mkdir /var/run/MailScanner +mkdir /var/lock/subsys +mkdir /var/lock/subsys/MailScanner +chown -R postfix:postfix /var/run/MailScanner +chown -R postfix:postfix /var/lock/subsys/MailScanner +chown -R postfix:postfix /var/spool/MailScanner +fi +mkdir /var/spool/MailScanner/spamassassin + +chown postfix.mtagroup /var/spool/MailScanner/spamassassin +chown root.mtagroup /var/spool/MailScanner/incoming/ +chown postfix.mtagroup /var/spool/MailScanner/milterin +chown postfix.mtagroup /var/spool/MailScanner/milterout +chown postfix.mtagroup /var/spool/postfix/hold +chown postfix.mtagroup /var/spool/postfix/incoming +usermod -a -G mtagroup nobody + +chmod g+rx /var/spool/postfix/incoming +chmod g+rx /var/spool/postfix/hold +chmod -R 0775 /var/spool/postfix/incoming +chmod -R 0775 /var/spool/postfix/hold + +sed -i 's/^Run As User =.*/& postfix/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Run As Group =.*/& postfix/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Incoming Queue Dir =.*/Incoming Queue Dir = \/var\/spool\/postfix\/hold/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Outgoing Queue Dir =.*/Outgoing Queue Dir = \/var\/spool\/postfix\/incoming/' /etc/MailScanner/MailScanner.conf +sed -i 's/^MTA =.*/MTA = postfix/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Quarantine User =.*/& postfix/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Quarantine Group =.*/& mtagroup/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Quarantine Permissions =.*/Quarantine Permissions = 640/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Virus Scanners =.*/Virus Scanners = clamav/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Is Definitely Not Spam =.*/Is Definitely Not Spam = \&SQLWhitelist/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Is Definitely Spam =.*/Is Definitely Spam = \&SQLBlacklist/' /etc/MailScanner/MailScanner.conf +sed -i 's/^SpamAssassin User State Dir =.*/& \/var\/spool\/MailScanner\/spamassassin/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Always Looked Up Last =.*/Always Looked Up Last = \&MailWatchLogging/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Quarantine Whole Message =.*/Quarantine Whole Message = yes/' /etc/MailScanner/MailScanner.conf +sed -i 's/^Spam List =.*/Spam List = SBL + XBL/' /etc/MailScanner/MailScanner.conf + +mkdir /usr/local/CyberCP/public/mailwatch + +cd /usr/local/CyberCP/public/mailwatch + +git clone --depth=1 https://github.com/mailwatch/MailWatch.git --branch 1.2 --single-branch + +mv /usr/local/CyberCP/public/mailwatch/MailWatch/* /usr/local/CyberCP/public/mailwatch/ + +PASSWORD=$(cat /etc/cyberpanel/mysqlPassword) +USER=root +DATABASE=mailscanner +ADMINPASS=$(cat /etc/cyberpanel/adminPass) +mysql -u${USER} -p${PASSWORD} < "/usr/local/CyberCP/public/mailwatch/create.sql" +mysql -u${USER} -p${PASSWORD} -e "use mailscanner"; +mysql -u${USER} -D${DATABASE} -p${PASSWORD} -e "GRANT ALL ON mailscanner.* TO root@localhost IDENTIFIED BY '${PASSWORD}';" +mysql -u${USER} -D${DATABASE} -p${PASSWORD} -e "FLUSH PRIVILEGES;" +mysql -u${USER} -D${DATABASE} -p${PASSWORD} -e "INSERT INTO mailscanner.users SET username = 'admin', password = MD5('${ADMINPASS}'), fullname = 'admin', type = 'A';" + +cp /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php.example /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php + +sed -i "s/^define('DB_USER',.*/define('DB_USER','root');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php +sed -i "s/^define('DB_PASS',.*/define('DB_PASS','${PASSWORD}');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php +sed -i "s/^define('MAILWATCH_HOME',.*/define(\'MAILWATCH_HOME\', \'\/usr\/local\/CyberCP\/public\/mailwatch\/mailscanner');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php +sed -i 's/^run_mailscanner=.*/run_mailscanner=1/' /etc/MailScanner/defaults + +cp /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/MailWatchConf.pm /usr/share/MailScanner/perl/custom/ +sed -i 's/^my (\$db_user) = .*/my (\$db_user) = \x27'${USER}'\x27;/' /usr/share/MailScanner/perl/custom/MailWatchConf.pm +sed -i 's/^my (\$db_pass) = .*/my (\$db_pass) = \x27'${PASSWORD}'\x27;/' /usr/share/MailScanner/perl/custom/MailWatchConf.pm +ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/MailWatch.pm /usr/share/MailScanner/perl/custom +ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLBlackWhiteList.pm /usr/share/MailScanner/perl/custom +ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLSpamSettings.pm /usr/share/MailScanner/perl/custom +sed -i "s/^\$pathToFunctions =.*/\$pathToFunctions = '\/usr\/local\/CyberCP\/public\/mailwatch\/mailscanner\/functions.php';/" /usr/local/CyberCP/public/mailwatch/upgrade.php + +php /usr/local/CyberCP/public/mailwatch/upgrade.php +systemctl enable mailscanner +systemctl restart mailscanner + +IPADDRESS=$(cat /etc/cyberpanel/machineIP) + +echo "MailScanner successfully installed. MailWatch successfully installed." +echo "Visit https://${IPADDRESS}:8090/mailwatch/mailscanner" +echo "Username: admin" +echo "Password: ${ADMINPASS}" +echo "If you wish mailscanner/spamassassin to send spam email to a spam folder please follow the tutorial on the Cyberpanel Website" +echo "Firewalld is stopped. Either enable, install CSF or use an alternative!" +echo "Optional cpan/cpanm modules are available for MailScanner. Cronjobs and further postfix tools are available for MailWatch" +echo "See https://www.mailwatch.org and https://docs.mailwatch.org/install/optional-setup.html" +exit + diff --git a/install/cyberpanel.repo b/install/cyberpanel.repo index 7723bb480..4dc23d316 100755 --- a/install/cyberpanel.repo +++ b/install/cyberpanel.repo @@ -1,4 +1,5 @@ -[cyberpanel] -name=Cyber Panel -baseurl=http://repo.cyberpersons.com -gpgcheck=0 \ No newline at end of file +[CyberPanel] +name=CyberPanel +baseurl=https://rep.cyberpanel.net/ +gpgkey=https://rep.cyberpanel.net/RPM-GPG-KEY-cyberpanel +gpgcheck=1 \ No newline at end of file From acafcf2a76e7239aa3997507e5e64ffe2845e523 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 3 May 2020 11:36:29 +0100 Subject: [PATCH 105/240] Update mailscannerinstaller.sh better os check and minor fix. --- CLScript/mailscannerinstaller.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/CLScript/mailscannerinstaller.sh b/CLScript/mailscannerinstaller.sh index 852695d55..7f985fa15 100644 --- a/CLScript/mailscannerinstaller.sh +++ b/CLScript/mailscannerinstaller.sh @@ -12,11 +12,10 @@ exit fi if [ -f /etc/os-release ];then - ./etc/os-release -OS=$NAME +OS=$(head -1 /etc/os-release) fi -if [ "$OS" == "CentOS Linux" ];then +if [ "$OS" = "NAME=\"CentOS Linux\"" ];then setenforce 0 @@ -46,7 +45,7 @@ echo "Please install spamassassin through the CyberPanel interface before procee exit fi -else +elif [ "$OS" = "NAME=\"Ubuntu\"" ];then apt-get install -y libmysqlclient-dev @@ -74,8 +73,8 @@ else echo "Please install spamassassin through the CyberPanel interface before proceeding" exit fi -fi +fi echo "header_checks = regexp:/etc/postfix/header_checks" >> /etc/postfix/main.cf echo "/^Received:/ HOLD" >> /etc/postfix/header_checks @@ -87,11 +86,9 @@ unzip master.zip cd /root/v5-master/builds -if [ "$OS" == "CentOS Linux" ];then -rpm -Uvh *.rhel.noarch.rpm -else -dpkg -i *.noarch.deb +if [ "$OS" = "NAME=\"Ubuntu\"" ];then +dpkg -i *.noarch.deb mkdir /var/run/MailScanner mkdir /var/lock/subsys @@ -99,7 +96,13 @@ mkdir /var/lock/subsys/MailScanner chown -R postfix:postfix /var/run/MailScanner chown -R postfix:postfix /var/lock/subsys/MailScanner chown -R postfix:postfix /var/spool/MailScanner + +elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then + +rpm -Uvh *.rhel.noarch.rpm + fi + mkdir /var/spool/MailScanner/spamassassin chown postfix.mtagroup /var/spool/MailScanner/spamassassin From d297bbb43befd468f657abf08d2bc83422a9e957 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 3 May 2020 22:02:44 +0500 Subject: [PATCH 106/240] bug fix top processes --- serverStatus/views.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/serverStatus/views.py b/serverStatus/views.py index d7e605c40..02f868b07 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -580,6 +580,8 @@ def topProcessesStatus(request): ## Memory + logging.CyberCPLogFileWriter.writeToFile(str(memory)) + if memory[3].find('+') > -1: memoryFinal = memory[3].split('+')[0] else: @@ -587,6 +589,7 @@ def topProcessesStatus(request): data['totalMemory'] = str(int(float(memoryFinal) / 1024)) + 'MB' + ## if memory[5].find('free') > -1: @@ -594,6 +597,7 @@ def topProcessesStatus(request): else: data['freeMemory'] = str(int(float(memory[5]) / 1024)) + 'MB' + ## if memory[7].find('used') > -1: @@ -601,13 +605,21 @@ def topProcessesStatus(request): else: data['usedMemory'] = str(int(float(memory[7]) / 1024)) + 'MB' - if memory[9].find('buff') > -1: - data['buffCache'] = str(int(float(memory[8]) / 1024)) + 'MB' - else: - data['buffCache'] = str(int(float(memory[9]) / 1024)) + 'MB' + + try: + if memory[9].find('buff') > -1: + data['buffCache'] = str(int(float(memory[8]) / 1024)) + 'MB' + else: + data['buffCache'] = str(int(float(memory[9]) / 1024)) + 'MB' + except: + logging.CyberCPLogFileWriter.writeToFile(memory[8]) + data['buffCache'] = str(int(float(memory[8].split('+')[0]) / 1024)) + 'MB' + ## Swap + logging.CyberCPLogFileWriter.writeToFile(str(swap)) + data['swapTotalMemory'] = str(int(float(swap[2]) / 1024)) + 'MB' data['swapFreeMemory'] = str(int(float(swap[4]) / 1024)) + 'MB' From 61dc3654d0881c3adfab745108100f371b9aa7ff Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 3 May 2020 18:03:50 +0100 Subject: [PATCH 107/240] Update mailscannerinstaller.sh update php path --- CLScript/mailscannerinstaller.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLScript/mailscannerinstaller.sh b/CLScript/mailscannerinstaller.sh index 7f985fa15..4fa8da4b9 100644 --- a/CLScript/mailscannerinstaller.sh +++ b/CLScript/mailscannerinstaller.sh @@ -167,7 +167,7 @@ ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLBlackWhite ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLSpamSettings.pm /usr/share/MailScanner/perl/custom sed -i "s/^\$pathToFunctions =.*/\$pathToFunctions = '\/usr\/local\/CyberCP\/public\/mailwatch\/mailscanner\/functions.php';/" /usr/local/CyberCP/public/mailwatch/upgrade.php -php /usr/local/CyberCP/public/mailwatch/upgrade.php +/usr/bin/php /usr/local/CyberCP/public/mailwatch/upgrade.php systemctl enable mailscanner systemctl restart mailscanner From 765c5e0dd23577f2a8ce550ebb09ea751ef91dfb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 3 May 2020 22:06:32 +0500 Subject: [PATCH 108/240] add full php path to mail scanner --- {CLScript => CPScripts}/mailscannerinstaller.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {CLScript => CPScripts}/mailscannerinstaller.sh (99%) diff --git a/CLScript/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh similarity index 99% rename from CLScript/mailscannerinstaller.sh rename to CPScripts/mailscannerinstaller.sh index 4fa8da4b9..05951f7c6 100644 --- a/CLScript/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -167,7 +167,7 @@ ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLBlackWhite ln -s /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/SQLSpamSettings.pm /usr/share/MailScanner/perl/custom sed -i "s/^\$pathToFunctions =.*/\$pathToFunctions = '\/usr\/local\/CyberCP\/public\/mailwatch\/mailscanner\/functions.php';/" /usr/local/CyberCP/public/mailwatch/upgrade.php -/usr/bin/php /usr/local/CyberCP/public/mailwatch/upgrade.php +/usr/local/lsws/lsphp72/bin/php /usr/local/CyberCP/public/mailwatch/upgrade.php systemctl enable mailscanner systemctl restart mailscanner From 332b9ff5fcf1f0d90438e6e66b5ea9fdc8c894cd Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 3 May 2020 23:18:09 +0500 Subject: [PATCH 109/240] change how packages are fetched on ubuntu; --- .../static/serverStatus/serverStatus.js | 6 +- .../serverStatus/packageManager.html | 80 +++++++++++++++++-- serverStatus/views.py | 47 +++++++---- static/serverStatus/serverStatus.js | 6 +- 4 files changed, 114 insertions(+), 25 deletions(-) diff --git a/serverStatus/static/serverStatus/serverStatus.js b/serverStatus/static/serverStatus/serverStatus.js index 5dca427db..f8b6c11fb 100755 --- a/serverStatus/static/serverStatus/serverStatus.js +++ b/serverStatus/static/serverStatus/serverStatus.js @@ -789,7 +789,7 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { $scope.currentPage = 1; $scope.recordsToShow = 10; - $scope.fetchPackages = function () { + $scope.fetchPackages = function (type = 'installed') { $scope.cyberpanelLoading = false; var config = { @@ -800,7 +800,8 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { var data = { page: $scope.currentPage, - recordsToShow: $scope.recordsToShow + recordsToShow: $scope.recordsToShow, + type: type }; dataurl = "/serverstatus/fetchPackages"; @@ -833,6 +834,7 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { }; + $scope.fetchPackages('upgrade'); $scope.killProcess = function (pid) { diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index c9d7afe9d..02dbb64eb 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -22,7 +22,7 @@
    @@ -368,7 +368,214 @@
    -

    Howdy, I'm in Section 7.

    + Total Packages: {$ totalPackages $} + Fetched Packages: {$ fetchedPackages $} + + + +
    + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + +
    {% trans "Package" %}{% trans "Version" %}{% trans "Lock" %}{% trans "Actions" %}
    + + + + Details + + Update + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    diff --git a/serverStatus/views.py b/serverStatus/views.py index 14ea17504..fa3598713 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -735,18 +735,24 @@ def fetchPackages(request): command = 'apt-mark showhold' locked = ProcessUtilities.outputExecutioner(command).split('\n') - command = 'apt list --installed' - packages = ProcessUtilities.outputExecutioner(command).split('\n') - packages = packages[4:] + if type == 'CyberPanel': - upgradePackages = [] + command = 'cat /usr/local/CyberCP/AllCPUbuntu.json' + packages = json.loads(ProcessUtilities.outputExecutioner(command)) - if type == 'upgrade': - for pack in packages: - if pack.find('upgradable') > -1: - upgradePackages.append(pack) + else: + command = 'apt list --installed' + packages = ProcessUtilities.outputExecutioner(command).split('\n') + packages = packages[4:] - packages = upgradePackages + upgradePackages = [] + + if type == 'upgrade': + for pack in packages: + if pack.find('upgradable') > -1: + upgradePackages.append(pack) + + packages = upgradePackages #if os.path.exists(ProcessUtilities.debugPath): @@ -768,27 +774,47 @@ def fetchPackages(request): import re for items in finalPackages: try: - nowSplitted = items.split('now') + if type == 'CyberPanel': - upgrade = 'Not Needed' + packageName = items['Package'].split('/')[0] - if nowSplitted[1].split(' ')[3].find('upgradable') > -1: - current = nowSplitted[1].split(' ') - upgrade = '%s %s %s' % (current[3], current[4], current[5]) + if packageName in locked: + lock = 1 + else: + lock = 0 + + dic = {'package': packageName, + 'version': items['Version'], 'lock': lock} + + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) - if nowSplitted[0].split('/')[0] in locked: - lock = 1 else: - lock = 0 + nowSplitted = items.split('now') - dic = {'package': nowSplitted[0].split('/')[0], 'version': '%s %s' % (nowSplitted[1].split(' ')[1], nowSplitted[1].split(' ')[2]), 'upgrade': upgrade, 'lock': lock} + upgrade = 'Not Needed' - counter = counter + 1 - if checker == 0: - json_data = json_data + json.dumps(dic) - checker = 1 - else: - json_data = json_data + ',' + json.dumps(dic) + if nowSplitted[1].split(' ')[3].find('upgradable') > -1: + current = nowSplitted[1].split(' ') + upgrade = '%s %s %s' % (current[3], current[4], current[5]) + + if nowSplitted[0].split('/')[0] in locked: + lock = 1 + else: + lock = 0 + + dic = {'package': nowSplitted[0].split('/')[0], 'version': '%s %s' % (nowSplitted[1].split(' ')[1], nowSplitted[1].split(' ')[2]), 'upgrade': upgrade, 'lock': lock} + + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:773]' % (str(msg))) diff --git a/static/firewall/firewall.js b/static/firewall/firewall.js index a0acd1f53..eaa372adb 100644 --- a/static/firewall/firewall.js +++ b/static/firewall/firewall.js @@ -2171,8 +2171,6 @@ app.controller('installImunify', function ($scope, $http, $timeout, $window) { text: 'Could not connect to server, please refresh this page', type: 'error' }); - - } } diff --git a/static/serverStatus/serverStatus.js b/static/serverStatus/serverStatus.js index f8b6c11fb..8a89159d6 100644 --- a/static/serverStatus/serverStatus.js +++ b/static/serverStatus/serverStatus.js @@ -788,10 +788,11 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { $scope.currentPage = 1; $scope.recordsToShow = 10; + var globalType; $scope.fetchPackages = function (type = 'installed') { $scope.cyberpanelLoading = false; - + globalType = type; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') @@ -836,16 +837,98 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { }; $scope.fetchPackages('upgrade'); - $scope.killProcess = function (pid) { + $scope.fetchPackageDetails = function (packageFetch) { + $scope.cyberpanelLoading = false; + $scope.package = packageFetch; - $scope.cyberPanelLoading = false; - - url = "/serverstatus/killProcess"; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; var data = { - pid: pid + package: packageFetch }; + dataurl = "/serverstatus/fetchPackageDetails"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + $scope.packageDetails = response.data.packageDetails; + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + $scope.updatePackage = function (packageToUpgrade = 'all') { + $scope.cyberpanelLoading = false; + $scope.package = packageToUpgrade; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + package: packageToUpgrade + }; + + dataurl = "/serverstatus/updatePackage"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + getRequestStatus(); + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + function getRequestStatus() { + + $scope.cyberpanelLoading = false; + + url = "/serverstatus/switchTOLSWSStatus"; + + var data = {}; + var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') @@ -857,25 +940,19 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { function ListInitialDatas(response) { - $scope.cyberPanelLoading = true; - if (response.data.status === 1) { - new PNotify({ - title: 'Success', - text: 'Process successfully killed.', - type: 'success' - }); + if (response.data.abort === 0) { + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus, 1000); } else { - new PNotify({ - title: 'Operation Failed!', - text: response.data.error_message, - type: 'error' - }); + // Notifications + $timeout.cancel(); + $scope.cyberpanelLoading = true; + $scope.requestData = response.data.requestStatus; } - } function cantLoadInitialDatas(response) { - $scope.cyberPanelLoading = true; + $scope.cyberpanelLoading = true; new PNotify({ title: 'Operation Failed!', text: 'Could not connect to server, please refresh this page', @@ -883,6 +960,53 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) { }); } + } + + $scope.lockStatus = function (lockPackage, type) { + $scope.cyberpanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + package: lockPackage, + type: type, + }; + + dataurl = "/serverstatus/lockStatus"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + new PNotify({ + title: 'Success!', + text: 'Status updated.', + type: 'success' + }); + $scope.fetchPackages(globalType); + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + }; }); \ No newline at end of file From 1cfb65bdd99de4516da9c6f5e282a08216d07930 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 5 May 2020 22:40:09 +0500 Subject: [PATCH 115/240] fix fetch cp packages --- serverStatus/templates/serverStatus/packageManager.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index adb189cbd..8f20c01b9 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -427,7 +427,7 @@
    - + ng-change="fetchPackages('CyberPanel')"> From 841a42c5ef113e4842401fa3fc094d58ec015a39 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 6 May 2020 00:25:46 +0500 Subject: [PATCH 116/240] package manager support for cent7 --- plogical/applicationInstaller.py | 23 +++-- serverStatus/views.py | 151 ++++++++++++++++++++++++------- 2 files changed, 133 insertions(+), 41 deletions(-) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index 5063926d3..d46a49396 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -67,16 +67,23 @@ class ApplicationInstaller(multi.Thread): f = open(ServerStatusUtil.lswsInstallStatusPath, 'a') - if package == 'all': - command = 'apt-get update -y' - f.write(ProcessUtilities.outputExecutioner(command)) + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: - f.flush() + if package == 'all': + command = 'apt-get update -y' + f.write(ProcessUtilities.outputExecutioner(command)) - command = 'apt-get upgrade -y' - f.write(ProcessUtilities.outputExecutioner(command)) - else: - command = 'apt-get install --only-upgrade %s -y' % (package) + f.flush() + + command = 'apt-get upgrade -y' + f.write(ProcessUtilities.outputExecutioner(command)) + else: + command = 'apt-get install --only-upgrade %s -y' % (package) + f.write(ProcessUtilities.outputExecutioner(command)) + + f.close() + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + command = 'yum update %s -y' % (package) f.write(ProcessUtilities.outputExecutioner(command)) f.close() diff --git a/serverStatus/views.py b/serverStatus/views.py index fa3598713..9e7737919 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -753,6 +753,59 @@ def fetchPackages(request): upgradePackages.append(pack) packages = upgradePackages + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + + if type == 'installed': + + #### Cater for packages that need updates. + + startForUpdate = 1 + + command = 'yum check-update' + updates = ProcessUtilities.outputExecutioner(command).split('\n') + + for items in updates: + if items == '': + updates = updates[startForUpdate:] + break + else: + startForUpdate = startForUpdate + 1 + + ## make list of packages that need update + + updateNeeded = [] + for items in updates: + updateNeeded.append(items.split(' ')[0]) + + ### + + command = 'yum list installed' + packages = ProcessUtilities.outputExecutioner(command).split('\n') + + startFrom = 1 + + for items in packages: + if items.find('Installed Packages') > -1: + packages = packages[startFrom:] + break + else: + startFrom = startFrom + 1 + elif type == 'upgrade': + #### Cater for packages that need updates. + + startForUpdate = 1 + + command = 'yum check-update' + packages = ProcessUtilities.outputExecutioner(command).split('\n') + + for items in packages: + if items == '': + packages = packages[startForUpdate:-1] + break + else: + startForUpdate = startForUpdate + 1 + + ## make list of packages that need update #if os.path.exists(ProcessUtilities.debugPath): @@ -773,51 +826,80 @@ def fetchPackages(request): import re for items in finalPackages: - try: - if type == 'CyberPanel': + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + try: + if type == 'CyberPanel': - packageName = items['Package'].split('/')[0] + packageName = items['Package'].split('/')[0] + + if packageName in locked: + lock = 1 + else: + lock = 0 + + dic = {'package': packageName, + 'version': items['Version'], 'lock': lock} + + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) - if packageName in locked: - lock = 1 else: - lock = 0 + nowSplitted = items.split('now') - dic = {'package': packageName, - 'version': items['Version'], 'lock': lock} + upgrade = 'Not Needed' - counter = counter + 1 - if checker == 0: - json_data = json_data + json.dumps(dic) - checker = 1 - else: - json_data = json_data + ',' + json.dumps(dic) + if nowSplitted[1].split(' ')[3].find('upgradable') > -1: + current = nowSplitted[1].split(' ') + upgrade = '%s %s %s' % (current[3], current[4], current[5]) - else: - nowSplitted = items.split('now') + if nowSplitted[0].split('/')[0] in locked: + lock = 1 + else: + lock = 0 - upgrade = 'Not Needed' + dic = {'package': nowSplitted[0].split('/')[0], 'version': '%s %s' % (nowSplitted[1].split(' ')[1], nowSplitted[1].split(' ')[2]), 'upgrade': upgrade, 'lock': lock} - if nowSplitted[1].split(' ')[3].find('upgradable') > -1: - current = nowSplitted[1].split(' ') - upgrade = '%s %s %s' % (current[3], current[4], current[5]) + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) + except BaseException as msg: + logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:773]' % (str(msg))) + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + try: + if type == 'installed' or type == 'upgrade': - if nowSplitted[0].split('/')[0] in locked: - lock = 1 - else: - lock = 0 + details = items.split(' ') + details = [a for a in details if a != ''] - dic = {'package': nowSplitted[0].split('/')[0], 'version': '%s %s' % (nowSplitted[1].split(' ')[1], nowSplitted[1].split(' ')[2]), 'upgrade': upgrade, 'lock': lock} + if type == 'installed': + if details[0] in updateNeeded: + upgrade = 'Upgrade available' + else: + upgrade = 'Not needed.' + else: + upgrade = 'Upgrade available' - counter = counter + 1 - if checker == 0: - json_data = json_data + json.dumps(dic) - checker = 1 - else: - json_data = json_data + ',' + json.dumps(dic) + dic = {'package': details[0], + 'version': details[1], + 'upgrade': upgrade, 'lock': 1} - except BaseException as msg: - logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:773]' % (str(msg))) + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) + + + except BaseException as msg: + logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:839]' % (str(msg))) json_data = json_data + ']' @@ -847,6 +929,9 @@ def fetchPackageDetails(request): if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: command = 'apt-cache show %s' % (package) packageDetails = ProcessUtilities.outputExecutioner(command) + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + command = 'yum info %s' % (package) + packageDetails = ProcessUtilities.outputExecutioner(command) data_ret = {'status': 1, 'packageDetails': packageDetails} json_data = json.dumps(data_ret) From 81e4668dc9f7624b2a2bec13edd6812b29974213 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 6 May 2020 00:28:24 +0500 Subject: [PATCH 117/240] Translation into Portuguese of Portugal and Brazil --- locale/pt-BR/LC_MESSAGES/django.mo | Bin 57143 -> 57392 bytes locale/pt/LC_MESSAGES/django.mo | Bin 57143 -> 57392 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/locale/pt-BR/LC_MESSAGES/django.mo b/locale/pt-BR/LC_MESSAGES/django.mo index 8700c156186bb16cc72764a67308068a9cc718a1..ec8862658761318894ceaf9244b0bb96d6a67169 100644 GIT binary patch delta 16136 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 VNTEqWa%v)VQcCYk-F2k&{{Uikk^2Au delta 15887 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 diff --git a/locale/pt/LC_MESSAGES/django.mo b/locale/pt/LC_MESSAGES/django.mo index 8700c156186bb16cc72764a67308068a9cc718a1..ec8862658761318894ceaf9244b0bb96d6a67169 100755 GIT binary patch delta 16136 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 VNTEqWa%v)VQcCYk-F2k&{{Uikk^2Au delta 15887 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 From 87aeb1c8570b67e5983e170bfdb588e80ccb2c81 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 6 May 2020 14:16:40 +0500 Subject: [PATCH 118/240] package lock on centos --- .../serverStatus/packageManager.html | 12 +-- serverStatus/views.py | 73 ++++++++++++++++++- 2 files changed, 78 insertions(+), 7 deletions(-) diff --git a/serverStatus/templates/serverStatus/packageManager.html b/serverStatus/templates/serverStatus/packageManager.html index 8f20c01b9..334f9e915 100755 --- a/serverStatus/templates/serverStatus/packageManager.html +++ b/serverStatus/templates/serverStatus/packageManager.html @@ -124,8 +124,8 @@ - - + + - - + + - - + + -1: + + data = open(yumConf, 'r').readlines() + + for items in data: + if items.find('exclude') > -1: + locked = items.split('=')[1].rstrip('\n').split(' ') + break + if type == 'installed': #### Cater for packages that need updates. @@ -875,6 +894,8 @@ def fetchPackages(request): try: if type == 'installed' or type == 'upgrade': + ### + details = items.split(' ') details = [a for a in details if a != ''] @@ -886,9 +907,15 @@ def fetchPackages(request): else: upgrade = 'Upgrade available' + + if details[0].split('.')[0] in locked: + lock = 1 + else: + lock = 0 + dic = {'package': details[0], 'version': details[1], - 'upgrade': upgrade, 'lock': 1} + 'upgrade': upgrade, 'lock': lock} counter = counter + 1 if checker == 0: @@ -899,6 +926,7 @@ def fetchPackages(request): except BaseException as msg: + print(str(msg)) logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:839]' % (str(msg))) json_data = json_data + ']' @@ -1005,6 +1033,49 @@ def lockStatus(request): command = 'apt-mark hold %s' % (package) ProcessUtilities.executioner(command) + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + + package = package.split('.')[0] + + if os.path.exists('/etc/yum.conf'): + yumConf = '/etc/yum.conf' + elif os.path.exists('/etc/yum/yum.conf'): + yumConf = '/etc/yum/yum.conf' + + yumConfData = open(yumConf, 'r').read() + data = open(yumConf, 'r').readlines() + + + if type == 0: + writeToFile = open(yumConf, 'w') + + for items in data: + if items.find('exclude') > -1: + writeToFile.writelines(items.replace(package, '')) + else: + writeToFile.writelines(items) + + writeToFile.close() + else: + + if yumConfData.find('exclude') == -1: + + writeToFile = open(yumConf, 'a') + writeToFile.writelines('exclude=%s\n' % (package)) + writeToFile.close() + + else: + writeToFile = open(yumConf, 'w') + + for items in data: + if items.find('exclude') > -1: + excludeLine = items.strip('\n') + writeToFile.writelines('%s %s\n' % (excludeLine, package)) + else: + writeToFile.writelines(items) + + writeToFile.close() + data_ret = {'status': 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) From f01678f86484c56e515e1eb0f63fb3b500ef50f1 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 6 May 2020 15:18:38 +0500 Subject: [PATCH 119/240] CP Packages on Cent7 --- serverStatus/views.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/serverStatus/views.py b/serverStatus/views.py index e5d6fb1ca..7d584c008 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -753,6 +753,8 @@ def fetchPackages(request): upgradePackages.append(pack) packages = upgradePackages + + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: ### Check Package Lock status @@ -823,6 +825,9 @@ def fetchPackages(request): break else: startForUpdate = startForUpdate + 1 + elif type == 'CyberPanel': + command = 'cat /usr/local/CyberCP/CPCent7repo.json' + packages = json.loads(ProcessUtilities.outputExecutioner(command)) ## make list of packages that need update @@ -923,6 +928,24 @@ def fetchPackages(request): checker = 1 else: json_data = json_data + ',' + json.dumps(dic) + elif type == 'CyberPanel': + + packageName = items['Package'] + + if packageName.split('.')[0] in locked: + lock = 1 + else: + lock = 0 + + dic = {'package': packageName, + 'version': items['Version'], 'lock': lock} + + counter = counter + 1 + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) except BaseException as msg: From 52301bbc796aae78a0a70d0b45ac7cd44ba2716c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 6 May 2020 15:30:26 +0500 Subject: [PATCH 120/240] update all for cent7 --- plogical/applicationInstaller.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index d46a49396..811906953 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -83,8 +83,12 @@ class ApplicationInstaller(multi.Thread): f.close() elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = 'yum update %s -y' % (package) - f.write(ProcessUtilities.outputExecutioner(command)) + if package == 'all': + command = 'yum update -y' + f.write(ProcessUtilities.outputExecutioner(command)) + else: + command = 'yum update %s -y' % (package) + f.write(ProcessUtilities.outputExecutioner(command)) f.close() From 5f589d0569116f8937c88f047b3cc2c27f1cacad Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 7 May 2020 13:36:32 +0500 Subject: [PATCH 121/240] feature: https://github.com/usmannasir/cyberpanel/issues/328 --- manageSSL/views.py | 12 ++++++++---- plogical/acl.py | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/manageSSL/views.py b/manageSSL/views.py index 05ec7e988..0dfdb16c5 100755 --- a/manageSSL/views.py +++ b/manageSSL/views.py @@ -126,7 +126,7 @@ def sslForHostName(request): else: return ACLManager.loadError() - websitesName = ACLManager.findAllSites(currentACL, userID) + websitesName = ACLManager.findAllSites(currentACL, userID, 1) return render(request, 'manageSSL/sslForHostName.html', {'websiteList': websitesName}) except KeyError: @@ -151,11 +151,15 @@ def obtainHostNameSSL(request): data = json.loads(request.body) virtualHost = data['virtualHost'] - path = "/home/" + virtualHost + "/public_html" + try: + website = Websites.objects.get(domain=virtualHost) + path = "/home/" + virtualHost + "/public_html" + except: + website = ChildDomains.objects.get(domain=virtualHost) + path = website.path - data = json.loads(request.body) - virtualHost = data['virtualHost'] admin = Administrator.objects.get(pk=userID) + if ACLManager.checkOwnership(virtualHost, admin, currentACL) == 1: pass else: diff --git a/plogical/acl.py b/plogical/acl.py index a79139059..e3ae1f63f 100755 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -405,13 +405,19 @@ class ACLManager: return admin.package_set.all() @staticmethod - def findAllSites(currentACL, userID): + def findAllSites(currentACL, userID, fetchChilds = 0): websiteNames = [] if currentACL['admin'] == 1: allWebsites = Websites.objects.all() + for items in allWebsites: websiteNames.append(items.domain) + + if fetchChilds: + for child in items.childdomains_set.all(): + websiteNames.append(child.domain) + else: admin = Administrator.objects.get(pk=userID) @@ -421,11 +427,19 @@ class ACLManager: for items in websites: websiteNames.append(items.domain) + if fetchChilds: + for child in items.childdomains_set.all(): + websiteNames.append(child.domain) + for items in admins: webs = items.websites_set.all() for web in webs: websiteNames.append(web.domain) + if fetchChilds: + for child in web.childdomains_set.all(): + websiteNames.append(child.domain) + return websiteNames From 97ae6eca2887655dbe44d2c9864d341a449e59a9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 7 May 2020 17:15:31 +0500 Subject: [PATCH 122/240] fix : https://github.com/usmannasir/cyberpanel/issues/329 --- backup/backupManager.py | 41 +++++++++++++++------------------- backup/static/backup/backup.js | 1 + static/backup/backup.js | 1 + 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/backup/backupManager.py b/backup/backupManager.py index f7181f4ca..6e298d26b 100755 --- a/backup/backupManager.py +++ b/backup/backupManager.py @@ -1115,32 +1115,27 @@ class BackupManager: time.sleep(3) - if os.path.isfile(backupLogPath): - command = "sudo cat " + backupLogPath - status = ProcessUtilities.outputExecutioner(command) + command = "sudo cat " + backupLogPath + status = ProcessUtilities.outputExecutioner(command) - if status.find("completed[success]") > -1: - command = "rm -rf " + removalPath - ProcessUtilities.executioner(command) - data_ret = {'remoteTransferStatus': 1, 'error_message': "None", "status": status, "complete": 1} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) - elif status.find("[5010]") > -1: - command = "sudo rm -rf " + removalPath - ProcessUtilities.executioner(command) - data = {'remoteTransferStatus': 0, 'error_message': status, - "status": "None", "complete": 0} - json_data = json.dumps(data) - return HttpResponse(json_data) - else: - data_ret = {'remoteTransferStatus': 1, 'error_message': "None", "status": status, "complete": 0} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) - else: - data_ret = {'remoteTransferStatus': 0, 'error_message': "No such log found", "status": "None", - "complete": 0} + if status.find("completed[success]") > -1: + command = "rm -rf " + removalPath + ProcessUtilities.executioner(command) + data_ret = {'remoteTransferStatus': 1, 'error_message': "None", "status": status, "complete": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) + elif status.find("[5010]") > -1: + command = "sudo rm -rf " + removalPath + ProcessUtilities.executioner(command) + data = {'remoteTransferStatus': 0, 'error_message': status, + "status": "None", "complete": 0} + json_data = json.dumps(data) + return HttpResponse(json_data) + else: + data_ret = {'remoteTransferStatus': 1, 'error_message': "None", "status": status, "complete": 0} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + except BaseException as msg: data = {'remoteTransferStatus': 0, 'error_message': str(msg), "status": "None", "complete": 0} json_data = json.dumps(data) diff --git a/backup/static/backup/backup.js b/backup/static/backup/backup.js index a41fffb41..cbe74d8ef 100755 --- a/backup/static/backup/backup.js +++ b/backup/static/backup/backup.js @@ -1347,6 +1347,7 @@ app.controller('remoteBackupControl', function ($scope, $http, $timeout) { $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { + $scope.backupProcessStarted = true; if (response.data.remoteTransferStatus === 1) { diff --git a/static/backup/backup.js b/static/backup/backup.js index a41fffb41..cbe74d8ef 100644 --- a/static/backup/backup.js +++ b/static/backup/backup.js @@ -1347,6 +1347,7 @@ app.controller('remoteBackupControl', function ($scope, $http, $timeout) { $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { + $scope.backupProcessStarted = true; if (response.data.remoteTransferStatus === 1) { From 157da73ae22fc9bb1ea24d21e13c2e3f50d8e275 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 9 May 2020 00:07:56 +0500 Subject: [PATCH 123/240] bug fix: https://forums.cyberpanel.net/discussion/comment/9482/#Comment_9482 --- static/websiteFunctions/websiteFunctions.js | 29 +++++++++++++++++-- .../websiteFunctions/websiteFunctions.js | 29 +++++++++++++++++-- .../templates/websiteFunctions/manageGIT.html | 8 ++--- 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/static/websiteFunctions/websiteFunctions.js b/static/websiteFunctions/websiteFunctions.js index 58c302260..42cffc8b9 100644 --- a/static/websiteFunctions/websiteFunctions.js +++ b/static/websiteFunctions/websiteFunctions.js @@ -5836,7 +5836,7 @@ app.controller('manageGIT', function ($scope, $http, $timeout, $window) { $scope.autoCommitCurrent = response.data.autoCommitCurrent; $scope.autoPushCurrent = response.data.autoPushCurrent; $scope.emailLogsCurrent = response.data.emailLogsCurrent; - $scope.currentCommands = response.data.commands; + document.getElementById("currentCommands").value = response.data.commands; $scope.webhookCommandCurrent = response.data.webhookCommandCurrent; } else { $scope.gitTracking = false; @@ -6677,17 +6677,40 @@ app.controller('manageGIT', function ($scope, $http, $timeout, $window) { url = "/websites/saveGitConfigurations"; - var data = { domain: $("#domain").text(), folder: $scope.folder, autoCommit: $scope.autoCommit, autoPush: $scope.autoPush, emailLogs: $scope.emailLogs, - commands: $scope.commands, + commands: document.getElementById("currentCommands").value, webhookCommand: $scope.webhookCommand }; + if ($scope.autoCommit === undefined){ + $scope.autoCommitCurrent = 'Never'; + }else{ + $scope.autoCommitCurrent = $scope.autoCommit; + } + + if ($scope.autoPush === undefined){ + $scope.autoPushCurrent = 'Never'; + }else{ + $scope.autoPushCurrent = $scope.autoPush; + } + + if ($scope.emailLogs === undefined){ + $scope.emailLogsCurrent = false; + }else{ + $scope.emailLogsCurrent = $scope.emailLogs; + } + + if ($scope.webhookCommand === undefined){ + $scope.webhookCommandCurrent = false; + }else{ + $scope.webhookCommandCurrent = $scope.webhookCommand; + } + var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') diff --git a/websiteFunctions/static/websiteFunctions/websiteFunctions.js b/websiteFunctions/static/websiteFunctions/websiteFunctions.js index 58c302260..42cffc8b9 100755 --- a/websiteFunctions/static/websiteFunctions/websiteFunctions.js +++ b/websiteFunctions/static/websiteFunctions/websiteFunctions.js @@ -5836,7 +5836,7 @@ app.controller('manageGIT', function ($scope, $http, $timeout, $window) { $scope.autoCommitCurrent = response.data.autoCommitCurrent; $scope.autoPushCurrent = response.data.autoPushCurrent; $scope.emailLogsCurrent = response.data.emailLogsCurrent; - $scope.currentCommands = response.data.commands; + document.getElementById("currentCommands").value = response.data.commands; $scope.webhookCommandCurrent = response.data.webhookCommandCurrent; } else { $scope.gitTracking = false; @@ -6677,17 +6677,40 @@ app.controller('manageGIT', function ($scope, $http, $timeout, $window) { url = "/websites/saveGitConfigurations"; - var data = { domain: $("#domain").text(), folder: $scope.folder, autoCommit: $scope.autoCommit, autoPush: $scope.autoPush, emailLogs: $scope.emailLogs, - commands: $scope.commands, + commands: document.getElementById("currentCommands").value, webhookCommand: $scope.webhookCommand }; + if ($scope.autoCommit === undefined){ + $scope.autoCommitCurrent = 'Never'; + }else{ + $scope.autoCommitCurrent = $scope.autoCommit; + } + + if ($scope.autoPush === undefined){ + $scope.autoPushCurrent = 'Never'; + }else{ + $scope.autoPushCurrent = $scope.autoPush; + } + + if ($scope.emailLogs === undefined){ + $scope.emailLogsCurrent = false; + }else{ + $scope.emailLogsCurrent = $scope.emailLogs; + } + + if ($scope.webhookCommand === undefined){ + $scope.webhookCommandCurrent = false; + }else{ + $scope.webhookCommandCurrent = $scope.webhookCommand; + } + var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') diff --git a/websiteFunctions/templates/websiteFunctions/manageGIT.html b/websiteFunctions/templates/websiteFunctions/manageGIT.html index 27ba5e006..d8558cc46 100755 --- a/websiteFunctions/templates/websiteFunctions/manageGIT.html +++ b/websiteFunctions/templates/websiteFunctions/manageGIT.html @@ -189,8 +189,7 @@
    -
    Currently: {$ autoCommitCurrent - $} +
    Currently: {$ autoCommitCurrent $}
    @@ -234,10 +233,9 @@
    - + class="form-control">
    From 56c87428db520caa99c216221256a37a1c5a5a55 Mon Sep 17 00:00:00 2001 From: WhatTheServer Date: Sat, 9 May 2020 08:41:50 -0400 Subject: [PATCH 124/240] Update mailscannerinstaller.sh initial work to enable defaulting all detected spam to the INBOX.Junk E-mail for cyberpanel --- CPScripts/mailscannerinstaller.sh | 120 +++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 05951f7c6..875e6c791 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -1,6 +1,20 @@ #!/bin/bash +#systemctl stop firewalld + +echo 'backup configs'; +cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf-bak_$(date '+%Y-%m-%d_%H_%M:%S'); +cp /etc/postfix/master.cf /etc/postfix/master.cf-bak_$(date '+%Y-%m-%d_%H_%M:%S'); +cp /etc/postfix/main.cf /etc/postfix/main.cf-bak_$(date '+%Y-%m-%d_%H_%M:%S'); +cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext-bak_$(date '+%Y-%m-%d_%H_%M:%S') + + +ZONE=$(firewall-cmd --get-default-zone) +firewall-cmd --zone=$ZONE --add-port=4190/tcp --permanent systemctl stop firewalld +echo 'Stop CSF' +csf -x + MAILSCANNER=/etc/MailScanner if [ -d $MAILSCANNER ];then @@ -173,13 +187,115 @@ systemctl restart mailscanner IPADDRESS=$(cat /etc/cyberpanel/machineIP) + +echo 'Setting up spamassassin and sieve to deliver spam to Junk folder by default' +#echo "If you wish mailscanner/spamassassin to send spam email to a spam folder please follow the tutorial on the Cyberpanel Website" +echo 'Fix protocols' +sed -i 's/^protocols =.*/protocols = imap pop3 sieve/g' /etc/dovecot/dovecot.conf + + +sed -i "s|^user_query.*|user_query = SELECT '5000' as uid, '5000' as gid, '/home/vmail/%d/%n' as home,mail FROM e_users WHERE email='%u';|g" /etc/dovecot/dovecot-sql.conf.ext + +if [ "$OS" = "NAME=\"Ubuntu\"" ];then + + apt-get install -y dovecot-managesieved dovecot-sieve net-tools pflogsumm + +elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then + + yum install -y nano net-tools dovecot-pigeonhole postfix-perl-scripts + +fi + + +# Create Sieve files +mkdir -p /etc/dovecot/sieve/global +touch /var/log/{dovecot-lda-errors.log,dovecot-lda.log} +touch /var/log/{dovecot-sieve-errors.log,dovecot-sieve.log} +touch /var/log/{dovecot-lmtp-errors.log,dovecot-lmtp.log} +touch /etc/dovecot/sieve/default.sieve +chown vmail: -R /etc/dovecot/sieve +chown vmail:mail /var/log/dovecot-* + +echo 'Create Sieve Default spam to Junk rule' +cat >> /etc/dovecot/sieve/default.sieve <> /etc/dovecot/dovecot.conf < Date: Sun, 10 May 2020 02:20:10 +0500 Subject: [PATCH 125/240] add dkim keys to dns records during fetch --- .../templates/WebTerminal/WebTerminal.html | 9 +++---- mailServer/mailserverManager.py | 2 ++ plogical/dnsUtilities.py | 26 ++++++++++++------- .../websiteFunctions/websiteFunctions.js | 1 + 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/WebTerminal/templates/WebTerminal/WebTerminal.html b/WebTerminal/templates/WebTerminal/WebTerminal.html index 81d21e451..75bea2190 100755 --- a/WebTerminal/templates/WebTerminal/WebTerminal.html +++ b/WebTerminal/templates/WebTerminal/WebTerminal.html @@ -7,15 +7,13 @@ {% get_current_language as LANGUAGE_CODE %} - - -

    {% trans "Terminal" %} - {% trans "Web Terminal Docs" %}

    + style="height: 23px;line-height: 21px;" + class="btn btn-border btn-alt border-red btn-link font-red" + title="">{% trans "Web Terminal Docs" %}

    {% trans "Execute your terminal commands." %}

    @@ -50,5 +48,4 @@
    - {% endblock %} diff --git a/mailServer/mailserverManager.py b/mailServer/mailserverManager.py index 2463bb94f..b5e387627 100755 --- a/mailServer/mailserverManager.py +++ b/mailServer/mailserverManager.py @@ -617,6 +617,8 @@ class MailServerManager: command = "sudo cat " + path privateKey = ProcessUtilities.outputExecutioner(command, 'opendkim') + DNS.createDKIMRecords(domainName) + data_ret = {'status': 1, 'fetchStatus': 1, 'keysAvailable': 1, 'publicKey': output[leftIndex:rightIndex], 'privateKey': privateKey, 'dkimSuccessMessage': 'Keys successfully fetched!', 'error_message': "None"} diff --git a/plogical/dnsUtilities.py b/plogical/dnsUtilities.py index 51fb3f8b2..cc2d3b2b2 100755 --- a/plogical/dnsUtilities.py +++ b/plogical/dnsUtilities.py @@ -474,16 +474,22 @@ class DNS: leftIndex = output.index('(') + 2 rightIndex = output.rindex(')') - 1 - record = Records(domainOwner=zone, - domain_id=zone.id, - name="default._domainkey." + topLevelDomain, - type="TXT", - content=output[leftIndex:rightIndex], - ttl=3600, - prio=0, - disabled=0, - auth=1) - record.save() + if Records.objects.filter(domainOwner=zone, name="default._domainkey." + topLevelDomain).count() == 0: + + record = Records(domainOwner=zone, + domain_id=zone.id, + name="default._domainkey." + topLevelDomain, + type="TXT", + content=output[leftIndex:rightIndex], + ttl=3600, + prio=0, + disabled=0, + auth=1) + record.save() + + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + command = ' systemctl restart pdns' + ProcessUtilities.executioner(command) if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: command = ' systemctl restart pdns' diff --git a/websiteFunctions/static/websiteFunctions/websiteFunctions.js b/websiteFunctions/static/websiteFunctions/websiteFunctions.js index 42cffc8b9..f39798297 100755 --- a/websiteFunctions/static/websiteFunctions/websiteFunctions.js +++ b/websiteFunctions/static/websiteFunctions/websiteFunctions.js @@ -6805,4 +6805,5 @@ app.controller('manageGIT', function ($scope, $http, $timeout, $window) { }; }); + /* Java script code to git tracking ends here */ From 6bc60d7c9eb12433887b1c198ffaab7fae5ad218 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 10 May 2020 03:15:33 +0500 Subject: [PATCH 126/240] setup autodiscover at later stage --- mailServer/mailserverManager.py | 47 +++++++- mailServer/static/mailServer/mailServer.js | 52 ++++++++ .../templates/mailServer/listEmails.html | 12 +- mailServer/urls.py | 1 + mailServer/views.py | 12 ++ plogical/virtualHostUtilities.py | 113 ++++++++++-------- static/mailServer/mailServer.js | 52 ++++++++ static/websiteFunctions/websiteFunctions.js | 1 + 8 files changed, 237 insertions(+), 53 deletions(-) diff --git a/mailServer/mailserverManager.py b/mailServer/mailserverManager.py index b5e387627..187fbbe74 100755 --- a/mailServer/mailserverManager.py +++ b/mailServer/mailserverManager.py @@ -226,6 +226,38 @@ class MailServerManager: json_data = json.dumps(data_ret) return HttpResponse(json_data) + def fixMailSSL(self): + try: + + userID = self.request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + data = json.loads(self.request.body) + selectedDomain = data['selectedDomain'] + + admin = Administrator.objects.get(pk=userID) + + if ACLManager.checkOwnership(selectedDomain, admin, currentACL) == 1: + pass + else: + return ACLManager.loadErrorJson('status', 0) + + website = Websites.objects.get(domain=selectedDomain) + + execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py" + execPath = '%s setupAutoDiscover --virtualHostName %s --websiteOwner %s' % (execPath, selectedDomain, website.admin.userName) + + ProcessUtilities.executioner(execPath) + + data_ret = {'status': 1, 'error_message': "None"} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + except BaseException as msg: + data_ret = {'status': 0, 'error_message': str(msg)} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + def emailForwarding(self): try: userID = self.request.session['userID'] @@ -476,6 +508,19 @@ class MailServerManager: except: raise BaseException('No emails exist for this domain.') + postfixMapPath = '/etc/postfix/vmail_ssl.map' + + if os.path.exists(postfixMapPath): + + postfixMapData = open(postfixMapPath, 'r').read() + + if postfixMapData.find(selectedDomain) == -1: + mailConfigured = 0 + else: + mailConfigured = 1 + else: + mailConfigured = 0 + records = emailDomain.eusers_set.all() json_data = "[" @@ -492,7 +537,7 @@ class MailServerManager: json_data = json_data + ',' + json.dumps(dic) json_data = json_data + ']' - final_json = json.dumps({'status': 1, 'fetchStatus': 1, 'error_message': "None", "data": json_data}) + final_json = json.dumps({'status': 1, 'fetchStatus': 1, 'mailConfigured': mailConfigured, 'error_message': "None", "data": json_data}) return HttpResponse(final_json) except BaseException as msg: diff --git a/mailServer/static/mailServer/mailServer.js b/mailServer/static/mailServer/mailServer.js index 3bf1db1c3..c33087815 100755 --- a/mailServer/static/mailServer/mailServer.js +++ b/mailServer/static/mailServer/mailServer.js @@ -1124,6 +1124,7 @@ app.controller('listEmails', function ($scope, $http) { $scope.cyberpanelLoading = true; $scope.emailsAccounts = true; + $scope.mailConfigured = 1; $scope.populateCurrentRecords = function () { $scope.cyberpanelLoading = false; @@ -1151,6 +1152,8 @@ app.controller('listEmails', function ($scope, $http) { if (response.data.status === 1) { $scope.emailsAccounts = false; $scope.records = JSON.parse(response.data.data); + $scope.mailConfigured = response.data.mailConfigured; + new PNotify({ title: 'Success!', text: 'Emails Successfully Fetched.', @@ -1229,6 +1232,55 @@ app.controller('listEmails', function ($scope, $http) { } + }; + + $scope.fixMailSSL = function (email) { + + $scope.cyberpanelLoading = false; + + var url = "/email/fixMailSSL"; + + var data = { + selectedDomain: $scope.selectedDomain, + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + function ListInitialDatas(response) { + if (response.data.status === 1) { + $scope.populateCurrentRecords(); + new PNotify({ + title: 'Success!', + text: 'Configurations applied successfully.', + type: 'success' + }); + + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + + } + + } + + function cantLoadInitialDatas(response) { + new PNotify({ + title: 'Error!', + text: 'Could not connect to server, please refresh this page.', + type: 'error' + }); + } + + }; $scope.changePasswordInitial = function (email) { diff --git a/mailServer/templates/mailServer/listEmails.html b/mailServer/templates/mailServer/listEmails.html index 955cdf4f8..4ed7781ff 100755 --- a/mailServer/templates/mailServer/listEmails.html +++ b/mailServer/templates/mailServer/listEmails.html @@ -56,6 +56,15 @@
    +
    +
    +

    {% trans "SSL for email is not configured properly, you may get Self-Signed error on mail clients such as Outlook and Thunderbird. More details " %}here.

    +
    + + + +
    +
    @@ -74,7 +83,8 @@ class="btn btn-border btn-alt border-purple btn-link font-purple" href="#" title="">{% trans 'Change Password' %} - {% trans 'Delete' %} diff --git a/mailServer/urls.py b/mailServer/urls.py index 74d902484..a974c6b64 100755 --- a/mailServer/urls.py +++ b/mailServer/urls.py @@ -20,6 +20,7 @@ urlpatterns = [ url(r'^deleteEmailAccount', views.deleteEmailAccount, name='deleteEmailAccount'), url(r'^getEmailsForDomain$', views.getEmailsForDomain, name='getEmailsForDomain'), url(r'^submitEmailDeletion', views.submitEmailDeletion, name='submitEmailDeletion'), + url(r'^fixMailSSL', views.fixMailSSL, name='fixMailSSL'), ## Change email password diff --git a/mailServer/views.py b/mailServer/views.py index 337567c07..12ce04a91 100755 --- a/mailServer/views.py +++ b/mailServer/views.py @@ -91,6 +91,18 @@ def submitEmailDeletion(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) +def fixMailSSL(request): + try: + + msM = MailServerManager(request) + coreResult = msM.fixMailSSL() + + return coreResult + except KeyError as msg: + data_ret = {'deleteEmailStatus': 0, 'error_message': str(msg)} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + def emailForwarding(request): try: msM = MailServerManager(request) diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index 7bbfcb306..7fae5acb6 100755 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -55,6 +55,64 @@ class virtualHostUtilities: cyberPanel = "/usr/local/CyberCP" redisConf = '/usr/local/lsws/conf/dvhost_redis.conf' + @staticmethod + def setupAutoDiscover(mailDomain, tempStatusPath, virtualHostName, admin): + + if mailDomain: + + logging.CyberCPLogFileWriter.statusWriter(tempStatusPath, 'Creating mail child domain..,80') + childDomain = 'mail.%s' % (virtualHostName) + childPath = '/home/%s/public_html/%s' % (virtualHostName, childDomain) + + virtualHostUtilities.createDomain(virtualHostName, childDomain, 'PHP 7.2', childPath, 1, 0, 0, + admin.userName, 0, "/home/cyberpanel/" + str(randint(1000, 9999))) + + ## update dovecot conf to enable auto-discover + + dovecotPath = '/etc/dovecot/dovecot.conf' + + if os.path.exists(dovecotPath): + dovecotContent = open(dovecotPath, 'r').read() + + if dovecotContent.find(childDomain) == -1: + content = """\nlocal_name %s { + ssl_cert = Date: Sun, 10 May 2020 23:38:59 +0500 Subject: [PATCH 127/240] display mail client details --- mailServer/mailserverManager.py | 2 +- mailServer/static/mailServer/mailServer.js | 1 + .../templates/mailServer/listEmails.html | 76 ++++++++++++++++++- static/mailServer/mailServer.js | 1 + 4 files changed, 78 insertions(+), 2 deletions(-) diff --git a/mailServer/mailserverManager.py b/mailServer/mailserverManager.py index 187fbbe74..a171cc68e 100755 --- a/mailServer/mailserverManager.py +++ b/mailServer/mailserverManager.py @@ -537,7 +537,7 @@ class MailServerManager: json_data = json_data + ',' + json.dumps(dic) json_data = json_data + ']' - final_json = json.dumps({'status': 1, 'fetchStatus': 1, 'mailConfigured': mailConfigured, 'error_message': "None", "data": json_data}) + final_json = json.dumps({'status': 1, 'fetchStatus': 1,'serverHostname': 'mail.%s' % (selectedDomain), 'mailConfigured': mailConfigured, 'error_message': "None", "data": json_data}) return HttpResponse(final_json) except BaseException as msg: diff --git a/mailServer/static/mailServer/mailServer.js b/mailServer/static/mailServer/mailServer.js index c33087815..f46bb4d4a 100755 --- a/mailServer/static/mailServer/mailServer.js +++ b/mailServer/static/mailServer/mailServer.js @@ -1153,6 +1153,7 @@ app.controller('listEmails', function ($scope, $http) { $scope.emailsAccounts = false; $scope.records = JSON.parse(response.data.data); $scope.mailConfigured = response.data.mailConfigured; + $scope.serverHostname = response.data.serverHostname; new PNotify({ title: 'Success!', diff --git a/mailServer/templates/mailServer/listEmails.html b/mailServer/templates/mailServer/listEmails.html index 4ed7781ff..00abe9f6b 100755 --- a/mailServer/templates/mailServer/listEmails.html +++ b/mailServer/templates/mailServer/listEmails.html @@ -65,7 +65,81 @@ -
    +
    + +

    {% trans "Details To Configure Mail Clients" %}

    + +
    + + + + + + + + + + + + + + + + + + + + +
    {% trans "POP3" %}{% trans "Details" %}
    {% trans "Server Hostname" %}{$ serverHostname $}
    {% trans "Port" %}110
    {% trans "SSL" %}STARTTLS
    + + + + + + + + + + + + + + + + + + + + + + +
    {% trans "IMAP" %}{% trans "Details" %}
    {% trans "Server Hostname" %}{$ serverHostname $}
    {% trans "Port" %}143
    {% trans "SSL" %}STARTTLS
    + + + + + + + + + + + + + + + + + + + + + + +
    {% trans "SMTP" %}{% trans "Details" %}
    {% trans "Server Hostname" %}{$ serverHostname $}
    {% trans "Port" %}587
    {% trans "SSL" %}STARTTLS
    +
    + +
    diff --git a/static/mailServer/mailServer.js b/static/mailServer/mailServer.js index c33087815..f46bb4d4a 100644 --- a/static/mailServer/mailServer.js +++ b/static/mailServer/mailServer.js @@ -1153,6 +1153,7 @@ app.controller('listEmails', function ($scope, $http) { $scope.emailsAccounts = false; $scope.records = JSON.parse(response.data.data); $scope.mailConfigured = response.data.mailConfigured; + $scope.serverHostname = response.data.serverHostname; new PNotify({ title: 'Success!', From 561cac2b3f5d7095500e9045c902ceabe048a5bf Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 10 May 2020 23:41:09 +0500 Subject: [PATCH 128/240] display mail client details --- plogical/virtualHostUtilities.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index 7fae5acb6..a490db652 100755 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -107,7 +107,11 @@ class virtualHostUtilities: writeToFile.write(mapContent) writeToFile.close() - command = 'postmap -F hash:/etc/postfix/vmail_ssl.map' + if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + command = 'postmap -F hash:/etc/postfix/vmail_ssl.map' + else: + command = 'postmap -f hash:/etc/postfix/vmail_ssl.map' + ProcessUtilities.executioner(command) command = 'systemctl restart postfix' From c2d0e3075ebfaa179e49a75361227cf193c038e9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 00:56:38 +0500 Subject: [PATCH 129/240] display mail client details --- plogical/virtualHostUtilities.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index a490db652..93dd2a1cc 100755 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -107,10 +107,7 @@ class virtualHostUtilities: writeToFile.write(mapContent) writeToFile.close() - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = 'postmap -F hash:/etc/postfix/vmail_ssl.map' - else: - command = 'postmap -f hash:/etc/postfix/vmail_ssl.map' + command = 'postmap -F hash:/etc/postfix/vmail_ssl.map' ProcessUtilities.executioner(command) From 7e26f3a58102b07595470d332870ff2bb0a0cfd1 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 00:59:21 +0500 Subject: [PATCH 130/240] ubuntu 20 --- cyberpanel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 993cc279d..492668dcd 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -554,7 +554,7 @@ elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then echo -e "\nDetecting CentOS 8.X...\n" SERVER_OS="CentOS" CENTOS_8="True" -elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then +elif echo $OUTPUT | grep -q "Ubuntu" ; then if uname -m | grep -q 64 ; then echo -e "\nDetecting Ubuntu 18.04...\n" SERVER_OS="Ubuntu" From 7488d79868387565e6ba84180c4ad4a056ede7af Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 01:03:51 +0500 Subject: [PATCH 131/240] ubuntu 20 --- cyberpanel.sh | 10 +++++++++- install/installCyberPanel.py | 37 ++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 492668dcd..9ca9bbe12 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -554,7 +554,7 @@ elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then echo -e "\nDetecting CentOS 8.X...\n" SERVER_OS="CentOS" CENTOS_8="True" -elif echo $OUTPUT | grep -q "Ubuntu" ; then +elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then if uname -m | grep -q 64 ; then echo -e "\nDetecting Ubuntu 18.04...\n" SERVER_OS="Ubuntu" @@ -562,6 +562,14 @@ elif echo $OUTPUT | grep -q "Ubuntu" ; then echo -e "\nUbuntu 18.04 x32 detected...ths only works on x64 system." exit fi +elif echo $OUTPUT | grep -q "Ubuntu 20" ; then + if uname -m | grep -q 64 ; then + echo -e "\nDetecting Ubuntu 20...\n" + SERVER_OS="Ubuntu" + else + echo -e "\nUbuntu 20 x32 detected...ths only works on x64 system." + exit + fi else cat /etc/*release echo -e "\nUnable to detect your OS...\n" diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index bba011f20..80019cbd1 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -7,12 +7,32 @@ import randomPassword import errno import MySQLdb as mariadb import install +from os.path import exists #distros centos=0 ubuntu=1 cent8=2 +def get_Ubuntu_release(): + release = -1 + if exists("/etc/lsb-release"): + distro_file = "/etc/lsb-release" + with open(distro_file) as f: + for line in f: + if line[:16] == "DISTRIB_RELEASE=": + release = float(line[16:]) + + if release == -1: + print("Can't find distro release name in " + distro_file + " - fatal error") + + else: + logging.InstallLog.writeToFile("Can't find linux release file - fatal error") + print("Can't find linux release file - fatal error") + os._exit(os.EX_UNAVAILABLE) + + return release + class InstallCyberPanel: mysql_Root_password = "" @@ -333,17 +353,18 @@ class InstallCyberPanel: command = 'DEBIAN_FRONTEND=noninteractive apt install pure-ftpd-mysql -y' os.system(command) - command = 'wget https://rep.cyberpanel.net/pure-ftpd-common_1.0.47-3_all.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + if get_Ubuntu_release() == 18.10: + command = 'wget https://rep.cyberpanel.net/pure-ftpd-common_1.0.47-3_all.deb' + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - command = 'wget https://rep.cyberpanel.net/pure-ftpd-mysql_1.0.47-3_amd64.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + command = 'wget https://rep.cyberpanel.net/pure-ftpd-mysql_1.0.47-3_amd64.deb' + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - command = 'dpkg --install --force-confold pure-ftpd-common_1.0.47-3_all.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + command = 'dpkg --install --force-confold pure-ftpd-common_1.0.47-3_all.deb' + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) - command = 'dpkg --install --force-confold pure-ftpd-mysql_1.0.47-3_amd64.deb' - install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) + command = 'dpkg --install --force-confold pure-ftpd-mysql_1.0.47-3_amd64.deb' + install.preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) elif self.distro == centos: command = "yum install -y pure-ftpd" From b4663a55663ac36fdb80fc136a8a109540029b9c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 01:09:28 +0500 Subject: [PATCH 132/240] ubuntu 20 --- cyberpanel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 9ca9bbe12..e0dbfdffc 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -410,7 +410,7 @@ if [[ $SERVER_OS == "CentOS" ]] ; then if [[ $SERVER_OS == "Ubuntu" ]] ; then apt update -y DEBIAN_FRONTEND=noninteractive apt upgrade -y - DEBIAN_FRONTEND=noninteracitve apt install -y htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libmariadbclient-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev libidn2-0-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcomerr2 libldap2-dev virtualenv git socat vim + DEBIAN_FRONTEND=noninteracitve apt install -y htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libmariadbclient-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev libidn2-0-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcomerr2 libldap2-dev virtualenv git socat vim unzip zip check_return DEBIAN_FRONTEND=noninteractive apt install -y python3-pip From 67944ab90b5e11052847c521402a842d15645a71 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 13:43:04 +0500 Subject: [PATCH 133/240] some fixes for ubuntu 20 --- cyberpanel.sh | 52 +++++++++++++++++++++++++++++++++++-------------- requirments.txt | 2 -- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index e0dbfdffc..0cda48a26 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1,6 +1,6 @@ #!/bin/bash -#CyberPanel installer script for CentOS 7.X, CentOS 8.X, CloudLinux 7.X and Ubuntu 18.04 +#CyberPanel installer script for CentOS 7.X, CentOS 8.X, CloudLinux 7.X, Ubuntu 18.04 and Ubuntu 20.04 SUDO_TEST=$(set) @@ -23,6 +23,7 @@ MEMCACHED="ON" REDIS="ON" TOTAL_RAM=$(free -m | awk '/Mem\:/ { print $2 }') CENTOS_8="False" +UBUNTU_20="False" WATCHDOG="OFF" BRANCH_NAME="v${TEMP:12:3}.${TEMP:25:1}" VIRT_TYPE="" @@ -562,10 +563,11 @@ elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then echo -e "\nUbuntu 18.04 x32 detected...ths only works on x64 system." exit fi -elif echo $OUTPUT | grep -q "Ubuntu 20" ; then +elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then if uname -m | grep -q 64 ; then - echo -e "\nDetecting Ubuntu 20...\n" + echo -e "\nDetecting Ubuntu 20.04 ...\n" SERVER_OS="Ubuntu" + UBUNTU_20="True" else echo -e "\nUbuntu 20 x32 detected...ths only works on x64 system." exit @@ -573,7 +575,7 @@ elif echo $OUTPUT | grep -q "Ubuntu 20" ; then else cat /etc/*release echo -e "\nUnable to detect your OS...\n" - echo -e "\nCyberPanel is supported on Ubuntu 18.04 x86_64, CentOS 7.x, CentOS 8.x and CloudLinux 7.x...\n" + echo -e "\nCyberPanel is supported on Ubuntu 18.04 x86_64, Ubuntu 20.04 x86_64, CentOS 7.x, CentOS 8.x and CloudLinux 7.x...\n" exit 1 fi } @@ -994,7 +996,14 @@ if [[ $debug == "0" ]] ; then fi if [[ $debug == "1" ]] ; then - /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* + if [[ $UBUNTU_20 == "False" ]] ; then + /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* + check_return +else + wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt + /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirments.txt + check_return +fi if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable @@ -1034,15 +1043,20 @@ if [[ $DEV == "ON" ]] ; then #install dev branch #wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt cd /usr/local/ - virtualenv -p /usr/bin/python3 CyberPanel + virtualenv -p /usr/bin/python3 CyberPanel source /usr/local/CyberPanel/bin/activate - wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip - check_return - unzip /usr/local/cyberpanel-pip.zip -d /usr/local - check_return - pip3.6 install --ignore-installed /usr/local/pip-packs/* - check_return - cd - + if [[ $UBUNTU_20 == "False" ]] ; then + wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip + check_return + unzip /usr/local/cyberpanel-pip.zip -d /usr/local + check_return + pip3.6 install --ignore-installed /usr/local/pip-packs/* + check_return + cd - + else + wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt + pip3.6 install --ignore-installed -r requirments.txt + fi fi if [ -f requirements.txt ] && [ -d cyberpanel ] ; then @@ -1132,8 +1146,16 @@ EOF virtualenv -p /usr/bin/python3 /usr/local/CyberCP source /usr/local/CyberCP/bin/activate -pip3.6 install --ignore-installed /usr/local/pip-packs/* -check_return + +if [[ $UBUNTU_20 == "False" ]] ; then + pip3.6 install --ignore-installed /usr/local/pip-packs/* + check_return +else + wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt + pip3.6 install --ignore-installed -r requirments.txt + check_return +fi + systemctl restart lscpd fi diff --git a/requirments.txt b/requirments.txt index 42c87b102..154583392 100755 --- a/requirments.txt +++ b/requirments.txt @@ -6,9 +6,7 @@ backports.ssl-match-hostname==3.5.0.1 bcrypt==3.1.7 boto3==1.9.64 botocore==1.12.64 -certbot==0.21.1 certifi==2018.4.16 -cffi==1.11.5 chardet==3.0.4 cloudflare==2.6.1 ConfigArgParse==0.15.2 From 48ee0a777f2e2616a77b5f2069a705f8f236eceb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 13:56:51 +0500 Subject: [PATCH 134/240] bug fix in fixMariaDB --- install/installCyberPanel.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 80019cbd1..7fca30c94 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -328,8 +328,11 @@ class InstallCyberPanel: conn = mariadb.connect(user='root', passwd=self.mysql_Root_password) cursor = conn.cursor() cursor.execute('set global innodb_file_per_table = on;') - cursor.execute('set global innodb_file_format = Barracuda;') - cursor.execute('set global innodb_large_prefix = on;') + try: + cursor.execute('set global innodb_file_format = Barracuda;') + cursor.execute('set global innodb_large_prefix = on;') + except BaseException as msg: + self.stdOut('%s. [ERROR:335]' % (str(msg))) cursor.close() conn.close() From 209026ed368c8c4adb81a74e5387d3b49f2bc03a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 14:28:31 +0500 Subject: [PATCH 135/240] bug fix in fixMariaDB --- dns/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dns/models.py b/dns/models.py index c926566db..ad666cff2 100755 --- a/dns/models.py +++ b/dns/models.py @@ -41,7 +41,7 @@ class Comments(models.Model): type = models.CharField(max_length=10) modified_at = models.IntegerField() account = models.CharField(max_length=40) - comment = models.CharField(max_length=64000) + comment = models.TextField() class Meta: db_table = 'comments' From 1fbc276709f47e334850e9c767b94696b649a919 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 14:48:37 +0500 Subject: [PATCH 136/240] bug fix in fixMariaDB --- dns/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dns/models.py b/dns/models.py index ad666cff2..c42b663ad 100755 --- a/dns/models.py +++ b/dns/models.py @@ -23,7 +23,7 @@ class Records(models.Model): domain_id = models.IntegerField(blank=True, null=True) name = models.CharField(max_length=255, blank=True, null=True) type = models.CharField(max_length=10, blank=True, null=True) - content = models.CharField(max_length=64000, blank=True, null=True) + content = models.CharField(max_length=1000, blank=True, null=True) ttl = models.IntegerField(blank=True, null=True) prio = models.IntegerField(blank=True, null=True) change_date = models.IntegerField(blank=True, null=True) From 1d0ad177432575b82be2241d2371620acff86665 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 11 May 2020 22:27:13 +0500 Subject: [PATCH 137/240] fix lswsgi for python 3.8 --- cyberpanel_upgrade.sh | 10 +++++++--- install/install.py | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 4348c73f2..768b3b92a 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -305,11 +305,15 @@ fi ## +rm -f wsgi-lsapi-1.4.tgz rm -f wsgi-lsapi-1.5.tgz +rm -f wsgi-lsapi-1.6.tgz rm -rf wsgi-lsapi-1.4 -wget http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.5.tgz -tar xf wsgi-lsapi-1.5.tgz -cd wsgi-lsapi-1.5 +rm -rf wsgi-lsapi-1.5 +rm -rf wsgi-lsapi-1.6 +wget http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.6.tgz +tar xf wsgi-lsapi-1.6.tgz +cd wsgi-lsapi-1.6 /usr/local/CyberPanel/bin/python ./configure.py make diff --git a/install/install.py b/install/install.py index 411534b69..4fdd694de 100755 --- a/install/install.py +++ b/install/install.py @@ -1494,13 +1494,13 @@ imap_folder_list_limit = 0 def setupPythonWSGI(self): try: - command = "wget http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.4.tgz" + command = "wget http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-1.6.tgz" preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - command = "tar xf wsgi-lsapi-1.4.tgz" + command = "tar xf wsgi-lsapi-1.6.tgz" preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) - os.chdir("wsgi-lsapi-1.4") + os.chdir("wsgi-lsapi-1.6") command = "/usr/local/CyberPanel/bin/python ./configure.py" preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) From 2db5c93a233ff916cf0b9b1e3ed95bc0d6c6dc03 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 02:22:08 +0500 Subject: [PATCH 138/240] some debugging --- cyberpanel.sh | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 0cda48a26..a69a2fe20 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -30,6 +30,19 @@ VIRT_TYPE="" GIT_URL="github.com/usmannasir/cyberpanel" GIT_CONTENT_URL="raw.githubusercontent.com/usmannasir/cyberpanel" +disable_repos() { + +if [[ $SERVER_OS == "CentOS" ]] ; then + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo + sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo +fi + +} check_return() { #check previous command result , 0 = ok , non-0 = something wrong. @@ -46,7 +59,6 @@ if [[ ! -f /usr/bin/cyberpanel_utility ]] ; then wget -q -O /usr/bin/cyberpanel_utility https://cyberpanel.sh/misc/cyberpanel_utility.sh chmod 700 /usr/bin/cyberpanel_utility fi - } watchdog_setup() { @@ -545,6 +557,7 @@ fi check_OS() { echo -e "\nChecking OS..." OUTPUT=$(cat /etc/*release) + if echo $OUTPUT | grep -q "CentOS Linux 7" ; then echo -e "\nDetecting CentOS 7.X...\n" SERVER_OS="CentOS" @@ -578,6 +591,8 @@ else echo -e "\nCyberPanel is supported on Ubuntu 18.04 x86_64, Ubuntu 20.04 x86_64, CentOS 7.x, CentOS 8.x and CloudLinux 7.x...\n" exit 1 fi + + } check_root() { @@ -1042,8 +1057,7 @@ export LC_ALL=en_US.UTF-8 if [[ $DEV == "ON" ]] ; then #install dev branch #wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - cd /usr/local/ - virtualenv -p /usr/bin/python3 CyberPanel + virtualenv -p /usr/bin/python3 /usr/local/CyberPanel source /usr/local/CyberPanel/bin/activate if [[ $UBUNTU_20 == "False" ]] ; then wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip @@ -1052,7 +1066,6 @@ if [[ $DEV == "ON" ]] ; then check_return pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return - cd - else wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt pip3.6 install --ignore-installed -r requirments.txt @@ -1064,6 +1077,10 @@ if [ -f requirements.txt ] && [ -d cyberpanel ] ; then rm -f requirements.txt fi +echo $PWD + +sleep 20 + git clone https://${GIT_URL} cd cyberpanel git checkout $BRANCH_NAME @@ -1072,6 +1089,9 @@ cd - cp -r cyberpanel /usr/local/cyberpanel cd cyberpanel/install +echo $PWD + +sleep 20 curl https://cyberpanel.sh/?version } @@ -1412,6 +1432,8 @@ else fi } +##START + if [ $# -eq 0 ] ; then echo -e "\nInitializing...\n" else @@ -1510,6 +1532,8 @@ else DOWNLOAD_SERVER="cdn.cyberpanel.sh" fi +##END + check_OS check_virtualization check_root @@ -1518,9 +1542,6 @@ check_process check_provider - - - if [[ $SILENT = "ON" ]] ; then argument_mode else @@ -1541,18 +1562,4 @@ main_install ### Disable Centos Default Repos -disable_repos() { - -if [[ $SERVER_OS == "CentOS" ]] ; then - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Base.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Debuginfo.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Media.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Vault.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-CR.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-fasttrack.repo - sed -i 's|enabled=1|enabled=0|g' /etc/yum.repos.d/CentOS-Sources.repo -fi - -} - disable_repos \ No newline at end of file From 16458a5243d4c59a84636486485d7d01a7de3ff9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 02:22:47 +0500 Subject: [PATCH 139/240] update awk for ubuntu20 --- cyberpanel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index a69a2fe20..6510f3cdc 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -21,7 +21,7 @@ KEY_SIZE="" ADMIN_PASS="1234567" MEMCACHED="ON" REDIS="ON" -TOTAL_RAM=$(free -m | awk '/Mem\:/ { print $2 }') +TOTAL_RAM=$(free -m | awk '/Mem:/ { print $2 }') CENTOS_8="False" UBUNTU_20="False" WATCHDOG="OFF" From 333ef741e11a9a5314ff9e46ee43b901af812a0b Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 02:24:31 +0500 Subject: [PATCH 140/240] some debugging --- install/install.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/install.py b/install/install.py index 4fdd694de..45dec46de 100755 --- a/install/install.py +++ b/install/install.py @@ -2217,4 +2217,6 @@ def main(): if __name__ == "__main__": + print(os.getcwd()) + time.sleep(20) main() From 536d3da622c2be41877991e3c54bb6703e5bd97d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 02:49:45 +0500 Subject: [PATCH 141/240] some more debugging --- cyberpanel.sh | 4 ++++ install/install.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/cyberpanel.sh b/cyberpanel.sh index 6510f3cdc..8bc1b726f 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1015,6 +1015,7 @@ if [[ $debug == "1" ]] ; then /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* check_return else + . /usr/local/CyberCP/bin/activate wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirments.txt check_return @@ -1073,6 +1074,8 @@ if [[ $DEV == "ON" ]] ; then fi if [ -f requirements.txt ] && [ -d cyberpanel ] ; then + echo $PWD + sleep 20 rm -rf cyberpanel rm -f requirements.txt fi @@ -1171,6 +1174,7 @@ if [[ $UBUNTU_20 == "False" ]] ; then pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return else + . /usr/local/CyberCP/bin/activate wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt pip3.6 install --ignore-installed -r requirments.txt check_return diff --git a/install/install.py b/install/install.py index 45dec46de..ed7f9aecf 100755 --- a/install/install.py +++ b/install/install.py @@ -1312,6 +1312,10 @@ imap_folder_list_limit = 0 logging.InstallLog.writeToFile("Starting LSCPD installation..") + print(os.getcwd()) + + time.sleep(30) + os.chdir(self.cwd) if self.distro == ubuntu: From 2a90ec2dfdcb5a40ac75551cd0511f84e863267a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 03:05:07 +0500 Subject: [PATCH 142/240] add missing virtualenv --- cyberpanel.sh | 1 + install/install.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/cyberpanel.sh b/cyberpanel.sh index 8bc1b726f..c5d9011c2 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1010,6 +1010,7 @@ if [[ $debug == "0" ]] ; then exit fi +virtualenv -p /usr/bin/python3 /usr/local/CyberCP if [[ $debug == "1" ]] ; then if [[ $UBUNTU_20 == "False" ]] ; then /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* diff --git a/install/install.py b/install/install.py index ed7f9aecf..a746e4f1c 100755 --- a/install/install.py +++ b/install/install.py @@ -1318,6 +1318,10 @@ imap_folder_list_limit = 0 os.chdir(self.cwd) + print(os.getcwd()) + + time.sleep(30) + if self.distro == ubuntu: command = "apt-get -y install gcc g++ make autoconf rcs" else: From 0d34c1e3a6def59020b925bac559ab85d1272e64 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 03:59:40 +0500 Subject: [PATCH 143/240] remove duplicate venv --- cyberpanel.sh | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index c5d9011c2..39071afd0 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1010,18 +1010,8 @@ if [[ $debug == "0" ]] ; then exit fi -virtualenv -p /usr/bin/python3 /usr/local/CyberCP -if [[ $debug == "1" ]] ; then - if [[ $UBUNTU_20 == "False" ]] ; then - /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* - check_return -else - . /usr/local/CyberCP/bin/activate - wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirments.txt - check_return -fi +if [[ $debug == "1" ]] ; then if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable else @@ -1168,21 +1158,22 @@ trusted-host=pypi.python.org EOF fi +fi + virtualenv -p /usr/bin/python3 /usr/local/CyberCP -source /usr/local/CyberCP/bin/activate if [[ $UBUNTU_20 == "False" ]] ; then - pip3.6 install --ignore-installed /usr/local/pip-packs/* + source /usr/local/CyberCP/bin/activate + /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* check_return else . /usr/local/CyberCP/bin/activate wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - pip3.6 install --ignore-installed -r requirments.txt + /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirments.txt check_return fi systemctl restart lscpd -fi for version in $(ls /usr/local/lsws | grep lsphp); do From 772dbf63d8144ae76540862375144e5ed9ea27af Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 04:01:10 +0500 Subject: [PATCH 144/240] remove duplicate venv --- cyberpanel.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 39071afd0..41463e391 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1060,7 +1060,7 @@ if [[ $DEV == "ON" ]] ; then check_return else wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - pip3.6 install --ignore-installed -r requirments.txt + pip3 install --ignore-installed -r requirments.txt fi fi @@ -1169,7 +1169,7 @@ if [[ $UBUNTU_20 == "False" ]] ; then else . /usr/local/CyberCP/bin/activate wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - /usr/local/CyberPanel/bin/pip3 install --ignore-installed -r requirments.txt + pip3 install --ignore-installed -r requirments.txt check_return fi From e7013d31e6183709bcda74c6c964ffad57add887 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 12:48:32 +0500 Subject: [PATCH 145/240] pip packs --- cyberpanel.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 41463e391..823e7dfbc 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1059,8 +1059,12 @@ if [[ $DEV == "ON" ]] ; then pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return else - wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - pip3 install --ignore-installed -r requirments.txt + wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/ubuntu-pip.zip + check_return + unzip /usr/local/cyberpanel-pip.zip -d /usr/local + check_return + pip3 install --ignore-installed /usr/local/packages/* + check_return fi fi @@ -1168,8 +1172,7 @@ if [[ $UBUNTU_20 == "False" ]] ; then check_return else . /usr/local/CyberCP/bin/activate - wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt - pip3 install --ignore-installed -r requirments.txt + pip3 install --ignore-installed /usr/local/packages/* check_return fi From d63ff4c9bfb6f5d4cd038e1af3536c66a9d7b69f Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 12 May 2020 13:33:39 +0500 Subject: [PATCH 146/240] remove debugging info --- cyberpanel.sh | 9 --------- install/install.py | 10 ---------- 2 files changed, 19 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 823e7dfbc..dc5b8d62a 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1069,16 +1069,10 @@ if [[ $DEV == "ON" ]] ; then fi if [ -f requirements.txt ] && [ -d cyberpanel ] ; then - echo $PWD - sleep 20 rm -rf cyberpanel rm -f requirements.txt fi -echo $PWD - -sleep 20 - git clone https://${GIT_URL} cd cyberpanel git checkout $BRANCH_NAME @@ -1087,9 +1081,6 @@ cd - cp -r cyberpanel /usr/local/cyberpanel cd cyberpanel/install -echo $PWD - -sleep 20 curl https://cyberpanel.sh/?version } diff --git a/install/install.py b/install/install.py index a746e4f1c..4fdd694de 100755 --- a/install/install.py +++ b/install/install.py @@ -1312,16 +1312,8 @@ imap_folder_list_limit = 0 logging.InstallLog.writeToFile("Starting LSCPD installation..") - print(os.getcwd()) - - time.sleep(30) - os.chdir(self.cwd) - print(os.getcwd()) - - time.sleep(30) - if self.distro == ubuntu: command = "apt-get -y install gcc g++ make autoconf rcs" else: @@ -2225,6 +2217,4 @@ def main(): if __name__ == "__main__": - print(os.getcwd()) - time.sleep(20) main() From 1b708b3aadcf99f7ba7626279031a2c6ba5f8ee1 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 01:29:29 +0500 Subject: [PATCH 147/240] bug fix: install --- cyberpanel.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index dc5b8d62a..f2d56ebe1 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1050,7 +1050,7 @@ if [[ $DEV == "ON" ]] ; then #install dev branch #wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt virtualenv -p /usr/bin/python3 /usr/local/CyberPanel - source /usr/local/CyberPanel/bin/activate + . /usr/local/CyberPanel/bin/activate if [[ $UBUNTU_20 == "False" ]] ; then wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip check_return @@ -1158,7 +1158,7 @@ fi virtualenv -p /usr/bin/python3 /usr/local/CyberCP if [[ $UBUNTU_20 == "False" ]] ; then - source /usr/local/CyberCP/bin/activate + . /usr/local/CyberCP/bin/activate /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* check_return else From 28f774102b35f714d0f72de1640a0c13f862c26c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 01:32:55 +0500 Subject: [PATCH 148/240] update repo version for cent7 --- install/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/install.py b/install/install.py index 4fdd694de..cfb9eee6e 100755 --- a/install/install.py +++ b/install/install.py @@ -323,7 +323,7 @@ class preFlightsChecks: os._exit(os.EX_SOFTWARE) elif self.distro == centos: - command = 'rpm -ivh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm' + command = 'rpm -ivh http://rpms.litespeedtech.com/centos/litespeed-repo-1.2-1.el7.noarch.rpm' preFlightsChecks.call(command, self.distro, command, command, 1, 1, os.EX_OSERR) elif self.distro == cent8: command = 'rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm' From c544fedd137117658c5769d08edc4335a6dadd8d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 18:08:55 +0500 Subject: [PATCH 149/240] virtualenv to 16.7.9 on ubuntu 20.04 --- cyberpanel.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cyberpanel.sh b/cyberpanel.sh index f2d56ebe1..50207dd53 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -414,6 +414,8 @@ if [[ $SERVER_OS == "CentOS" ]] ; then if [[ $SERVER_OS == "CentOS" ]] ; then pip3.6 install virtualenv==16.7.9 + elif [[ $UBUNTU_20 == "True" ]] ; then + pip3.6 install virtualenv==16.7.9 else pip3.6 install virtualenv fi From ec4be2ea8a5880561d483de0ba19eb9fa9c619d9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 18:32:36 +0500 Subject: [PATCH 150/240] virtualenv to 16.7.9 on ubuntu 20.04 --- cyberpanel.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 50207dd53..89e0318c2 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -414,15 +414,20 @@ if [[ $SERVER_OS == "CentOS" ]] ; then if [[ $SERVER_OS == "CentOS" ]] ; then pip3.6 install virtualenv==16.7.9 - elif [[ $UBUNTU_20 == "True" ]] ; then - pip3.6 install virtualenv==16.7.9 else pip3.6 install virtualenv fi - check_return - fi + check_return + +fi if [[ $SERVER_OS == "Ubuntu" ]] ; then + + if [[ $UBUNTU_20 == "True" ]] ; then + pip3 install virtualenv==16.7.9 + fi + check_return + apt update -y DEBIAN_FRONTEND=noninteractive apt upgrade -y DEBIAN_FRONTEND=noninteracitve apt install -y htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libmariadbclient-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev libidn2-0-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcomerr2 libldap2-dev virtualenv git socat vim unzip zip From 9ff8c9ee44c10fb0d8902ba0775e519726bbd71d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 18:35:10 +0500 Subject: [PATCH 151/240] virtualenv to 16.7.9 on ubuntu 20.04 --- cyberpanel.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 89e0318c2..d111d9433 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -423,11 +423,6 @@ fi if [[ $SERVER_OS == "Ubuntu" ]] ; then - if [[ $UBUNTU_20 == "True" ]] ; then - pip3 install virtualenv==16.7.9 - fi - check_return - apt update -y DEBIAN_FRONTEND=noninteractive apt upgrade -y DEBIAN_FRONTEND=noninteracitve apt install -y htop telnet libcurl4-gnutls-dev libgnutls28-dev libgcrypt20-dev libattr1 libattr1-dev liblzma-dev libgpgme-dev libmariadbclient-dev libcurl4-gnutls-dev libssl-dev nghttp2 libnghttp2-dev idn2 libidn2-dev libidn2-0-dev librtmp-dev libpsl-dev nettle-dev libgnutls28-dev libldap2-dev libgssapi-krb5-2 libk5crypto3 libkrb5-dev libcomerr2 libldap2-dev virtualenv git socat vim unzip zip @@ -441,6 +436,11 @@ if [[ $SERVER_OS == "Ubuntu" ]] ; then DEBIAN_FRONTEND=noninteractive apt install -y python3-venv check_return + if [[ $UBUNTU_20 == "True" ]] ; then + pip3 install virtualenv==16.7.9 + fi + check_return + fi } From 8e356637b68c343e522a860c9517aee31762900c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 20:20:23 +0500 Subject: [PATCH 152/240] update default php path --- cyberpanel.sh | 5 +++++ plogical/applicationInstaller.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index d111d9433..6ad5356fb 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1040,6 +1040,11 @@ if [[ $REDIS == "ON" ]] ; then fi after_install fi + +if [[ $UBUNTU_20 == "True" ]] ; then + cp /usr/local/lsws/lsphp73/bin/php /usr/bin +fi + } pip_virtualenv() { diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index 811906953..a2e71dcb9 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -70,7 +70,7 @@ class ApplicationInstaller(multi.Thread): if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: if package == 'all': - command = 'apt-get update -y' + command = 'DEBIAN_FRONTEND=noninteractive apt-get update -y' f.write(ProcessUtilities.outputExecutioner(command)) f.flush() From 524b05c49bb76ce6a42218d877057107ff25cf52 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 20:28:42 +0500 Subject: [PATCH 153/240] upgrade check for ubuntu 20 --- cyberpanel_upgrade.sh | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 768b3b92a..6a1eb9c25 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -12,6 +12,7 @@ GIT_URL="github.com/usmannasir/cyberpanel" GIT_CONTENT_URL="raw.githubusercontent.com/usmannasir/cyberpanel" SERVER_COUNTRY="unknow" SERVER_COUNTRY=$(curl --silent --max-time 5 https://cyberpanel.sh/?country) +UBUNTU_20="False" ### Update and remove not needed repos @@ -190,6 +191,10 @@ elif echo $OUTPUT | grep -q "CentOS Linux 8" ; then elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then echo -e "\nDetecting Ubuntu 18.04...\n" SERVER_OS="Ubuntu" +elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then + echo -e "\nDetecting Ubuntu 18.04...\n" + SERVER_OS="Ubuntu" + UBUNTU_20="True" else cat /etc/*release echo -e "\nUnable to detect your OS...\n" @@ -237,9 +242,17 @@ else fi rm -f requirments.txt -wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip + +if [[ $UBUNTU_20 == "False" ]] ; then + wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip +else + wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/ubuntu-pip.zip +fi + check_return rm -rf /usr/local/pip-packs/ +rm -rf /usr/local/packages + unzip /usr/local/cyberpanel-pip.zip -d /usr/local check_return . /usr/local/CyberPanel/bin/activate @@ -248,7 +261,11 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberPanel/bin/activate check_return - pip3 install --ignore-installed /usr/local/pip-packs/* + if [[ $UBUNTU_20 == "False" ]] ; then + pip3 install --ignore-installed /usr/local/pip-packs/* + else + pip3 install --ignore-installed /usr/local/packages/* + fi check_return else source /usr/local/CyberPanel/bin/activate @@ -293,7 +310,11 @@ check_return if [ $SERVER_OS = "Ubuntu" ] ; then . /usr/local/CyberCP/bin/activate check_return - pip3 install --ignore-installed /usr/local/pip-packs/* + if [[ $UBUNTU_20 == "False" ]] ; then + pip3 install --ignore-installed /usr/local/pip-packs/* + else + pip3 install --ignore-installed /usr/local/packages/* + fi check_return else source /usr/local/CyberCP/bin/activate From cef81982d9d19a37bdc2f170cb4bcef1c0053e77 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 21:42:16 +0500 Subject: [PATCH 154/240] ftp fix for ubuntu 20 --- cyberpanel_upgrade.sh | 2 +- install/installCyberPanel.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cyberpanel_upgrade.sh b/cyberpanel_upgrade.sh index 6a1eb9c25..2f49f7edf 100644 --- a/cyberpanel_upgrade.sh +++ b/cyberpanel_upgrade.sh @@ -192,7 +192,7 @@ elif echo $OUTPUT | grep -q "Ubuntu 18.04" ; then echo -e "\nDetecting Ubuntu 18.04...\n" SERVER_OS="Ubuntu" elif echo $OUTPUT | grep -q "Ubuntu 20.04" ; then - echo -e "\nDetecting Ubuntu 18.04...\n" + echo -e "\nDetecting Ubuntu 20.04...\n" SERVER_OS="Ubuntu" UBUNTU_20="True" else diff --git a/install/installCyberPanel.py b/install/installCyberPanel.py index 7fca30c94..ec9bd9974 100755 --- a/install/installCyberPanel.py +++ b/install/installCyberPanel.py @@ -409,8 +409,11 @@ class InstallCyberPanel: except: logging.InstallLog.writeToFile("[ERROR] Could not create directory for FTP SSL") + if (self.distro == centos or self.distro == cent8) or (self.distro == ubuntu and get_Ubuntu_release() == 18.14): + command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem' + else: + command = 'openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem' - command = 'openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem' install.preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) os.chdir(self.cwd) From f09836c38c669187216beb11ef88d4bdb6c868ac Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 22:13:43 +0500 Subject: [PATCH 155/240] fall back for venv --- cyberpanel.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 6ad5356fb..b0f5079d6 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1062,8 +1062,9 @@ if [[ $DEV == "ON" ]] ; then #install dev branch #wget https://raw.githubusercontent.com/usmannasir/cyberpanel/$BRANCH_NAME/requirments.txt virtualenv -p /usr/bin/python3 /usr/local/CyberPanel - . /usr/local/CyberPanel/bin/activate + if [[ $UBUNTU_20 == "False" ]] ; then + source /usr/local/CyberPanel/bin/activate wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/cyberpanel-pip.zip check_return unzip /usr/local/cyberpanel-pip.zip -d /usr/local @@ -1071,6 +1072,7 @@ if [[ $DEV == "ON" ]] ; then pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return else + . /usr/local/CyberPanel/bin/activate wget -O /usr/local/cyberpanel-pip.zip https://rep.cyberpanel.net/ubuntu-pip.zip check_return unzip /usr/local/cyberpanel-pip.zip -d /usr/local @@ -1170,7 +1172,7 @@ fi virtualenv -p /usr/bin/python3 /usr/local/CyberCP if [[ $UBUNTU_20 == "False" ]] ; then - . /usr/local/CyberCP/bin/activate + source /usr/local/CyberCP/bin/activate /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* check_return else From 3022f3f39ee6607c775a451475fcce9012828220 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 13 May 2020 23:33:01 +0500 Subject: [PATCH 156/240] change pip path --- cyberpanel.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index b0f5079d6..295d2c0c2 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1019,6 +1019,7 @@ fi if [[ $debug == "1" ]] ; then + pip3.6 install --ignore-installed /usr/local/pip-packs/* if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable else @@ -1173,10 +1174,12 @@ virtualenv -p /usr/bin/python3 /usr/local/CyberCP if [[ $UBUNTU_20 == "False" ]] ; then source /usr/local/CyberCP/bin/activate - /usr/local/CyberPanel/bin/pip3 install --ignore-installed /usr/local/pip-packs/* + check_return + pip3.6 install --ignore-installed /usr/local/pip-packs/* check_return else . /usr/local/CyberCP/bin/activate + check_return pip3 install --ignore-installed /usr/local/packages/* check_return fi From ef91568933fe8abb90b4c1647260b73283f56919 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 14 May 2020 00:50:06 +0500 Subject: [PATCH 157/240] minor cosmetic change --- mailServer/templates/mailServer/listEmails.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mailServer/templates/mailServer/listEmails.html b/mailServer/templates/mailServer/listEmails.html index 00abe9f6b..f2462bb06 100755 --- a/mailServer/templates/mailServer/listEmails.html +++ b/mailServer/templates/mailServer/listEmails.html @@ -61,7 +61,7 @@

    {% trans "SSL for email is not configured properly, you may get Self-Signed error on mail clients such as Outlook and Thunderbird. More details " %}here.

    - + From a3a77fef2427463821bea99184d727cbfa7e5a25 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 14 May 2020 14:06:26 +0500 Subject: [PATCH 158/240] bug fix incbackups for ubuntu --- IncBackups/IncBackupsControl.py | 3 ++- cyberpanel.sh | 2 +- plogical/processUtilities.py | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/IncBackups/IncBackupsControl.py b/IncBackups/IncBackupsControl.py index b153a5b9e..618c950a4 100644 --- a/IncBackups/IncBackupsControl.py +++ b/IncBackups/IncBackupsControl.py @@ -122,7 +122,8 @@ class IncJobs(multi.Thread): def findRestorePath(self): - if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8 \ + or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: self.restoreTarget = '/' return 1 else: diff --git a/cyberpanel.sh b/cyberpanel.sh index 295d2c0c2..8038886a7 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1175,7 +1175,7 @@ virtualenv -p /usr/bin/python3 /usr/local/CyberCP if [[ $UBUNTU_20 == "False" ]] ; then source /usr/local/CyberCP/bin/activate check_return - pip3.6 install --ignore-installed /usr/local/pip-packs/* + pip3 install --ignore-installed /usr/local/pip-packs/* check_return else . /usr/local/CyberCP/bin/activate diff --git a/plogical/processUtilities.py b/plogical/processUtilities.py index 336d8cb1b..fdd5e6990 100755 --- a/plogical/processUtilities.py +++ b/plogical/processUtilities.py @@ -16,6 +16,7 @@ class ProcessUtilities(multi.Thread): centos = 1 cent8 = 2 ubuntu = 0 + ubuntu20 = 3 server_address = '/usr/local/lscpd/admin/comm.sock' token = "unset" @@ -139,6 +140,8 @@ class ProcessUtilities(multi.Thread): distroPath = '/etc/lsb-release' if os.path.exists(distroPath): + if open(distroPath, 'r').read().find('20.04') > -1: + return ProcessUtilities.ubuntu20 return ProcessUtilities.ubuntu else: if open('/etc/redhat-release', 'r').read().find('CentOS Linux release 8') > -1: From 52e56c3bdb194cd79a60f692d7bd6e1990c08e2e Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 14 May 2020 14:18:23 +0500 Subject: [PATCH 159/240] set system default php on ubuntu 20.04 --- cyberpanel.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 8038886a7..1f5721acd 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1042,10 +1042,6 @@ fi after_install fi -if [[ $UBUNTU_20 == "True" ]] ; then - cp /usr/local/lsws/lsphp73/bin/php /usr/bin -fi - } pip_virtualenv() { @@ -1308,6 +1304,10 @@ fi fi #fix php.ini & issue +if [[ $UBUNTU_20 == "True" ]] ; then + cp /usr/local/lsws/lsphp73/bin/php /usr/bin +fi + #clear echo "###################################################################" echo " CyberPanel Successfully Installed " From 9d235aa9ad4184f66f7db5bb0bbf3846b70dbe36 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 15 May 2020 01:07:04 +0500 Subject: [PATCH 160/240] fetch ubuntu distro correctly --- baseTemplate/views.py | 2 +- plogical/applicationInstaller.py | 2 +- plogical/cronUtil.py | 4 ++-- plogical/csf.py | 4 ++-- plogical/dnsUtilities.py | 14 +++++++------- plogical/firewallUtilities.py | 2 +- plogical/mailUtilities.py | 2 +- serverStatus/views.py | 8 ++++---- websiteFunctions/website.py | 2 +- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/baseTemplate/views.py b/baseTemplate/views.py index 60494ba00..2fee1a4d1 100755 --- a/baseTemplate/views.py +++ b/baseTemplate/views.py @@ -59,7 +59,7 @@ def getAdminStatus(request): pdns = PDNSStatus.objects.get(pk=1) currentACL['dnsAsWhole'] = pdns.serverStatus except: - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: pdnsPath = '/etc/powerdns' else: pdnsPath = '/etc/pdns' diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index a2e71dcb9..c4e26a75b 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -67,7 +67,7 @@ class ApplicationInstaller(multi.Thread): f = open(ServerStatusUtil.lswsInstallStatusPath, 'a') - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: if package == 'all': command = 'DEBIAN_FRONTEND=noninteractive apt-get update -y' diff --git a/plogical/cronUtil.py b/plogical/cronUtil.py index a08803833..120f6c06a 100755 --- a/plogical/cronUtil.py +++ b/plogical/cronUtil.py @@ -100,7 +100,7 @@ class CronUtil: commandT = 'chmod 755 %s' % (cronParent) ProcessUtilities.executioner(commandT, 'root') - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'chmod 755 /var/spool/cron/crontabs' ProcessUtilities.outputExecutioner(command) @@ -109,7 +109,7 @@ class CronUtil: commandT = 'chmod 700 %s' % (cronParent) ProcessUtilities.executioner(commandT, 'root') - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'chmod 1730 /var/spool/cron/crontabs' ProcessUtilities.outputExecutioner(command) diff --git a/plogical/csf.py b/plogical/csf.py index ef1999224..7b2bee78e 100755 --- a/plogical/csf.py +++ b/plogical/csf.py @@ -73,7 +73,7 @@ class CSF(multi.Thread): if ProcessUtilities.decideDistro() == ProcessUtilities.centos: command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -y' ProcessUtilities.normalExecutioner(command) - elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools ipset -y' ProcessUtilities.normalExecutioner(command) command = 'ln -s /bin/systemctl /usr/bin/systemctl' @@ -309,7 +309,7 @@ class CSF(multi.Thread): ## # Some Ubuntu initial configurations - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: data = open('/etc/csf/csf.conf', 'r').readlines() writeToConf = open('/etc/csf/csf.conf', 'w') diff --git a/plogical/dnsUtilities.py b/plogical/dnsUtilities.py index cc2d3b2b2..c553e304d 100755 --- a/plogical/dnsUtilities.py +++ b/plogical/dnsUtilities.py @@ -446,7 +446,7 @@ class DNS: DNS.createDNSRecord(zone, cNameValue, "CNAME", actualSubDomain, 0, 3600) - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) @@ -487,11 +487,11 @@ class DNS: auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = ' systemctl restart pdns' ProcessUtilities.executioner(command) - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = ' systemctl restart pdns' ProcessUtilities.executioner(command) @@ -572,7 +572,7 @@ class DNS: auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) @@ -591,7 +591,7 @@ class DNS: auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) return @@ -608,7 +608,7 @@ class DNS: auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) return @@ -624,7 +624,7 @@ class DNS: disabled=0, auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) diff --git a/plogical/firewallUtilities.py b/plogical/firewallUtilities.py index d3f07fb63..f47b74205 100755 --- a/plogical/firewallUtilities.py +++ b/plogical/firewallUtilities.py @@ -15,7 +15,7 @@ class FirewallUtilities: @staticmethod def resFailed(res): - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu and res != 0: + if (ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20) and res != 0: return True elif ProcessUtilities.decideDistro() == ProcessUtilities.centos and res == 1: return True diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 485206df0..0b1bd2ae2 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -502,7 +502,7 @@ milter_default_action = accept def configureSpamAssassin(): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: confFile = "/etc/mail/spamassassin/local.cf" confData = open(confFile).readlines() diff --git a/serverStatus/views.py b/serverStatus/views.py index 7d584c008..33efa23f6 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -730,7 +730,7 @@ def fetchPackages(request): recordsToShow = int(data['recordsToShow']) type = data['type'] - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'apt-mark showhold' locked = ProcessUtilities.outputExecutioner(command).split('\n') @@ -850,7 +850,7 @@ def fetchPackages(request): import re for items in finalPackages: - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: try: if type == 'CyberPanel': @@ -977,7 +977,7 @@ def fetchPackageDetails(request): data = json.loads(request.body) package = data['package'] - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'apt-cache show %s' % (package) packageDetails = ProcessUtilities.outputExecutioner(command) elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: @@ -1047,7 +1047,7 @@ def lockStatus(request): package = data['package'] type = data['type'] - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: if type == 0: command = 'apt-mark unhold %s' % (package) diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 996b9f48d..71619e209 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -1605,7 +1605,7 @@ class WebsiteManager: output = ProcessUtilities.outputExecutioner(execPath, website.externalApp) - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'chmod 600 %s' % (cronPath) ProcessUtilities.executioner(command) From 8743fa9adb80b06260d2a4bf2c0b933c6aa317fb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 15 May 2020 01:47:48 +0500 Subject: [PATCH 161/240] bug fix: fetch access logs --- plogical/virtualHostUtilities.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index 93dd2a1cc..d750f5e3c 100755 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -308,10 +308,7 @@ class virtualHostUtilities: print("0, %s file is symlinked." % (fileName)) return 0 - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - groupName = 'nobody' - else: - groupName = 'nogroup' + groupName = 'nobody' numberOfTotalLines = int(ProcessUtilities.outputExecutioner('wc -l %s' % (fileName), groupName).split(" ")[0]) From db7d0f5854237e8756630ffe54545f47ca6915d4 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 04:15:28 +0500 Subject: [PATCH 162/240] bug fix: wp staging --- websiteFunctions/StagingSetup.py | 71 ++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 17 deletions(-) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index dd0351fc0..dbd7fc158 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -36,6 +36,11 @@ class StagingSetup(multi.Thread): website = Websites.objects.get(domain=masterDomain) + masterPath = '/home/%s/public_html' % (masterDomain) + + command = 'chmod 755 %s' % (masterPath) + ProcessUtilities.executioner(command) + ## Creating Child Domain path = "/home/" + masterDomain + "/public_html/" + domain @@ -57,18 +62,37 @@ class StagingSetup(multi.Thread): if data.find('[200]') > -1: pass else: - logging.statusWriter(tempStatusPath, 'Failed to create child-domain for staging enviroment. [404]') + logging.statusWriter(tempStatusPath, 'Failed to create child-domain for staging environment. [404]') return 0 logging.statusWriter(tempStatusPath, 'Domain successfully created..,15') ## Copying Data - masterPath = '/home/%s/public_html' % (masterDomain) + ## Fetch child domain path + + childDomainPaths = [] + + for childs in website.childdomains_set.all(): + childDomainPaths.append(childs.path) + + filesAndFolder = os.listdir(masterPath) + + for items in filesAndFolder: + completePath = '%s/%s' % (masterPath, items) + + if completePath in childDomainPaths: + continue + else: + command = 'cp -r %s %s/' % (completePath, path) + ProcessUtilities.executioner(command, website.externalApp) + + foldersToBeRemoved = ['%s/.git' % (path), '%s/wp-content/backups' % (path), '%s/wp-content/updraft' % (path), '%s/wp-content/cache' % (path), '%s/wp-content/plugins/litespeed-cache' % (path)] + + for rmv in foldersToBeRemoved: + command = 'rm -rf %s' % (rmv) + ProcessUtilities.executioner(command, website.externalApp) - command = 'rsync -avzh --exclude "%s" --exclude ".git" --exclude "wp-content/backups" --exclude "wp-content/updraft" --exclude "wp-content/cache" --exclude "wp-content/plugins/litespeed-cache" %s/ %s' % ( - domain, masterPath, path) - ProcessUtilities.executioner(command, website.externalApp) logging.statusWriter(tempStatusPath, 'Data copied..,50') @@ -82,11 +106,15 @@ class StagingSetup(multi.Thread): configPath = '%s/wp-config.php' % (masterPath) - if not os.path.exists(configPath): + command = 'ls -la %s' % (configPath) + output = ProcessUtilities.outputExecutioner(command) + + if output.find('No such file or') > -1: logging.statusWriter(tempStatusPath, 'WordPress is not detected. [404]') return 0 - data = open(configPath, 'r').readlines() + command = 'cat %s' % (configPath) + data = ProcessUtilities.outputExecutioner(command).split('\n') for items in data: if items.find('DB_NAME') > -1: @@ -105,11 +133,6 @@ class StagingSetup(multi.Thread): databasePath = '%s/%s.sql' % ('/home/cyberpanel', dbName) - command = "sed -i 's/%s/%s/g' %s" % (masterDomain, domain, databasePath) - ProcessUtilities.executioner(command, 'cyberpanel') - command = "sed -i 's/%s/%s/g' %s" % ('https', 'http', databasePath) - ProcessUtilities.executioner(command, 'cyberpanel') - if not mysqlUtilities.restoreDatabaseBackup(dbNameRestore, '/home/cyberpanel', None, 1, dbName): try: os.remove(databasePath) @@ -125,22 +148,31 @@ class StagingSetup(multi.Thread): ## Update final config file pathFinalConfig = '%s/wp-config.php' % (path) - data = open(pathFinalConfig, 'r').readlines() + + command = 'cat %s' % (configPath) + data = ProcessUtilities.outputExecutioner(command).split('\n') tmp = "/tmp/" + str(randint(1000, 9999)) writeToFile = open(tmp, 'w') for items in data: if items.find('DB_NAME') > -1: - writeToFile.write("define( 'DB_NAME', '%s' );\n" % (dbNameRestore)) + writeToFile.write("\ndefine( 'DB_NAME', '%s' );\n" % (dbNameRestore)) elif items.find('DB_USER') > -1: - writeToFile.write("define( 'DB_USER', '%s' );\n" % (dbUser)) + writeToFile.write("\ndefine( 'DB_USER', '%s' );\n" % (dbUser)) elif items.find('DB_PASSWORD') > -1: - writeToFile.write("define( 'DB_PASSWORD', '%s' );\n" % (dbPassword)) + writeToFile.write("\ndefine( 'DB_PASSWORD', '%s' );\n" % (dbPassword)) elif items.find('WP_SITEURL') > -1: continue + elif items.find("That's all, stop editing! Happy publishing.") > -1: + content = """ +define('WP_HOME','http://%s'); +define('WP_SITEURL','http://%s'); +""" % (domain, domain) + writeToFile.write(content) + writeToFile.writelines(items) else: - writeToFile.write(items) + writeToFile.write(items + '\n') writeToFile.close() @@ -157,6 +189,11 @@ class StagingSetup(multi.Thread): except: pass + from filemanager.filemanager import FileManager + + fm = FileManager(None, None) + fm.fixPermissions(masterDomain) + logging.statusWriter(tempStatusPath, 'Data copied..,[200]') return 0 From 47c0e0ef5cb2d3dfec7c7599fe1d546c0ef2b0ef Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 04:43:02 +0500 Subject: [PATCH 163/240] bug fix: sync to master --- websiteFunctions/StagingSetup.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index dbd7fc158..e6af71bf9 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -46,7 +46,7 @@ class StagingSetup(multi.Thread): path = "/home/" + masterDomain + "/public_html/" + domain logging.statusWriter(tempStatusPath, 'Creating domain for staging environment..,5') - phpSelection = 'PHP 7.1' + phpSelection = 'PHP 7.2' execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py" execPath = execPath + " createDomain --masterDomain " + masterDomain + " --virtualHostName " + domain + \ @@ -194,6 +194,9 @@ define('WP_SITEURL','http://%s'); fm = FileManager(None, None) fm.fixPermissions(masterDomain) + from plogical.installUtilities import installUtilities + installUtilities.reStartLiteSpeed() + logging.statusWriter(tempStatusPath, 'Data copied..,[200]') return 0 @@ -211,7 +214,11 @@ define('WP_SITEURL','http://%s'); child = ChildDomains.objects.get(domain=childDomain) + command = 'chmod 755 /home/%s/public_html' % (child.master.domain) + ProcessUtilities.executioner(command) + configPath = '%s/wp-config.php' % (child.path) + if not os.path.exists(configPath): logging.statusWriter(tempStatusPath, 'WordPress is not detected. [404]') return 0 @@ -234,8 +241,6 @@ define('WP_SITEURL','http://%s'); raise BaseException('Failed to create database backup.') databasePath = '%s/%s.sql' % ('/home/cyberpanel', dbName) - command = "sed -i 's/%s/%s/g' %s" % (child.domain, child.master.domain, databasePath) - ProcessUtilities.executioner(command, 'cyberpanel') ## Restore to master domain @@ -273,6 +278,16 @@ define('WP_SITEURL','http://%s'); command = 'rsync -avzh --exclude "wp-config.php" %s/ %s' % (sourcePath, destinationPath) ProcessUtilities.executioner(command, child.master.externalApp) + from filemanager.filemanager import FileManager + + fm = FileManager(None, None) + fm.fixPermissions(child.master.domain) + + from plogical.installUtilities import installUtilities + installUtilities.reStartLiteSpeed() + + logging.statusWriter(tempStatusPath, 'Data copied..,[200]') + logging.statusWriter(tempStatusPath, 'Data copied..,[200]') return 0 From d4741a6ab79b6bd7b9a78dfdcb5bfc9dc501fae6 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 14:01:11 +0500 Subject: [PATCH 164/240] remove duplicate log message --- websiteFunctions/StagingSetup.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index e6af71bf9..7fd2929ed 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -264,7 +264,6 @@ define('WP_SITEURL','http://%s'); os.remove(databasePath) except: pass - if eraseCheck: sourcePath = child.path destinationPath = '/home/%s/public_html' % (child.master.domain) @@ -288,8 +287,6 @@ define('WP_SITEURL','http://%s'); logging.statusWriter(tempStatusPath, 'Data copied..,[200]') - logging.statusWriter(tempStatusPath, 'Data copied..,[200]') - return 0 except BaseException as msg: mesg = '%s. [404]' % (str(msg)) From 02da28621f63bc4e0e257fc438a4d080ecb56ef0 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 15:42:15 +0500 Subject: [PATCH 165/240] bug fix: adding remote destinations --- plogical/backupUtilities.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index 882e32dfb..a61b3a186 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -924,6 +924,11 @@ class backupUtilities: expectation.append("Permission denied") expectation.append("100%") + ## Temp changes + + command = 'chmod 600 %s' % ('/root/.ssh/cyberpanel.pub') + ProcessUtilities.executioner(command) + command = "scp -o StrictHostKeyChecking=no -P " + port + " /root/.ssh/cyberpanel.pub " + user + "@" + IPAddress + ":~/.ssh/authorized_keys" setupKeys = pexpect.spawn(command, timeout=3) @@ -949,15 +954,32 @@ class backupUtilities: else: raise BaseException + ## Temp changes + + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel.pub') + ProcessUtilities.executioner(command) + return [1, "None"] except pexpect.TIMEOUT as msg: + + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + ProcessUtilities.executioner(command) + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, "TIMEOUT [sendKey]"] except pexpect.EOF as msg: + + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + ProcessUtilities.executioner(command) + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, "EOF [sendKey]"] except BaseException as msg: + + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + ProcessUtilities.executioner(command) + logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, str(msg) + " [sendKey]"] @@ -980,7 +1002,7 @@ class backupUtilities: expectation.append("Permission denied") expectation.append("File exists") - command = "ssh -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp"' + command = "ssh -o StrictHostKeyChecking=no -p " + port + ' ' + user + "@" + IPAddress + ' "mkdir ~/.ssh || rm -f ~/.ssh/temp && rm -f ~/.ssh/authorized_temp && cp ~/.ssh/authorized_keys ~/.ssh/temp || chmod 700 ~/.ssh || chmod g-w ~"' setupKeys = pexpect.spawn(command, timeout=3) if os.path.exists(ProcessUtilities.debugPath): @@ -1182,6 +1204,7 @@ class backupUtilities: subprocess.call(shlex.split(command)) + command = "sudo ssh -o StrictHostKeyChecking=no -p " + port + " -i /root/.ssh/cyberpanel " + user + "@" + IPAddress + ' "cat ~/.ssh/authorized_temp > ~/.ssh/authorized_keys"' if os.path.exists(ProcessUtilities.debugPath): From 8a2b2e43e79277d3aa8681cb2c9dabd9d3570589 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 15:43:16 +0500 Subject: [PATCH 166/240] bug fix: adding remote destinations --- plogical/backupUtilities.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index a61b3a186..bf6b11b17 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -963,21 +963,21 @@ class backupUtilities: except pexpect.TIMEOUT as msg: - command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel.pub') ProcessUtilities.executioner(command) logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, "TIMEOUT [sendKey]"] except pexpect.EOF as msg: - command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel.pub') ProcessUtilities.executioner(command) logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") return [0, "EOF [sendKey]"] except BaseException as msg: - command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel') + command = 'chmod 644 %s' % ('/root/.ssh/cyberpanel.pub') ProcessUtilities.executioner(command) logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [sendKey]") From 354179d89db20e501200925e1258f501ea657f60 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 16 May 2020 16:48:16 +0500 Subject: [PATCH 167/240] bug fix: wp staging --- websiteFunctions/StagingSetup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index 7fd2929ed..419bd1184 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -117,7 +117,7 @@ class StagingSetup(multi.Thread): data = ProcessUtilities.outputExecutioner(command).split('\n') for items in data: - if items.find('DB_NAME') > -1: + if items.find('DB_NAME') > -1 and items[0] != '/': try: dbName = items.split("'")[3] if mysqlUtilities.createDatabaseBackup(dbName, '/home/cyberpanel'): @@ -164,13 +164,13 @@ class StagingSetup(multi.Thread): writeToFile.write("\ndefine( 'DB_PASSWORD', '%s' );\n" % (dbPassword)) elif items.find('WP_SITEURL') > -1: continue - elif items.find("That's all, stop editing! Happy publishing.") > -1: + elif items.find("table_prefix") > -1: + writeToFile.writelines(items) content = """ define('WP_HOME','http://%s'); define('WP_SITEURL','http://%s'); """ % (domain, domain) writeToFile.write(content) - writeToFile.writelines(items) else: writeToFile.write(items + '\n') @@ -233,7 +233,7 @@ define('WP_SITEURL','http://%s'); data = open(configPath, 'r').readlines() for items in data: - if items.find('DB_NAME') > -1: + if items.find('DB_NAME') > -1 and items[0] != '/': dbName = items.split("'")[3] if mysqlUtilities.createDatabaseBackup(dbName, '/home/cyberpanel'): break From 4d92f10b3076a3e6f2894f7a5067405423183372 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 17 May 2020 13:16:30 +0500 Subject: [PATCH 168/240] bug fix: wp staging --- websiteFunctions/StagingSetup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/websiteFunctions/StagingSetup.py b/websiteFunctions/StagingSetup.py index 419bd1184..df6979ca6 100644 --- a/websiteFunctions/StagingSetup.py +++ b/websiteFunctions/StagingSetup.py @@ -251,7 +251,7 @@ define('WP_SITEURL','http://%s'); data = open(configPath, 'r').readlines() for items in data: - if items.find('DB_NAME') > -1: + if items.find('DB_NAME') > -1 and items[0] != '/': dbNameRestore = items.split("'")[3] if not mysqlUtilities.restoreDatabaseBackup(dbNameRestore, '/home/cyberpanel', None, 1, dbName): try: From 860fff09a3b3e97018bb35f40d878d5f9aca20d2 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 19 May 2020 13:29:39 +0500 Subject: [PATCH 169/240] =?UTF-8?q?fix=20dkim:=20Shouldn=E2=80=99t=20be=20?= =?UTF-8?q?different=20for=20domain=20and=20subdomain=20(causes=20issue=20?= =?UTF-8?q?while=20sending=20mail)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mailServer/mailserverManager.py | 6 +++ plogical/dnsUtilities.py | 71 +++++++++++++++++++++++++++++++-- plogical/mailUtilities.py | 50 +++++++++++------------ 3 files changed, 97 insertions(+), 30 deletions(-) diff --git a/mailServer/mailserverManager.py b/mailServer/mailserverManager.py index a171cc68e..a67006543 100755 --- a/mailServer/mailserverManager.py +++ b/mailServer/mailserverManager.py @@ -652,6 +652,12 @@ class MailServerManager: return ACLManager.loadError() try: + + import tldextract + + extractDomain = tldextract.extract(domainName) + domainName = extractDomain.domain + '.' + extractDomain.suffix + path = "/etc/opendkim/keys/" + domainName + "/default.txt" command = "sudo cat " + path output = ProcessUtilities.outputExecutioner(command, 'opendkim') diff --git a/plogical/dnsUtilities.py b/plogical/dnsUtilities.py index c553e304d..0ef13bd13 100755 --- a/plogical/dnsUtilities.py +++ b/plogical/dnsUtilities.py @@ -121,7 +121,6 @@ class DNS: subDomain = extractDomain.subdomain if len(subDomain) == 0: - if Domains.objects.filter(name=topLevelDomain).count() == 0: try: pdns = PDNSStatus.objects.get(pk=1) @@ -440,12 +439,66 @@ class DNS: DNS.createDNSRecord(zone, actualSubDomain, "A", ipAddress, 0, 3600) + ## Mail Record + + DNS.createDNSRecord(zone, 'mail.' + actualSubDomain, "A", ipAddress, 0, 3600) + # CNAME Records. cNameValue = "www." + actualSubDomain DNS.createDNSRecord(zone, cNameValue, "CNAME", actualSubDomain, 0, 3600) + ## MX Records + + mxValue = "mail." + actualSubDomain + + record = Records(domainOwner=zone, + domain_id=zone.id, + name=actualSubDomain, + type="MX", + content=mxValue, + ttl=3600, + prio="10", + disabled=0, + auth=1) + record.save() + + ## TXT Records + + record = Records(domainOwner=zone, + domain_id=zone.id, + name=actualSubDomain, + type="TXT", + content="v=spf1 a mx ip4:" + ipAddress + " ~all", + ttl=3600, + prio=0, + disabled=0, + auth=1) + record.save() + + record = Records(domainOwner=zone, + domain_id=zone.id, + name="_dmarc." + actualSubDomain, + type="TXT", + content="v=DMARC1; p=none", + ttl=3600, + prio=0, + disabled=0, + auth=1) + record.save() + + record = Records(domainOwner=zone, + domain_id=zone.id, + name="_domainkey." + actualSubDomain, + type="TXT", + content="t=y; o=~;", + ttl=3600, + prio=0, + disabled=0, + auth=1) + record.save() + if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'sudo systemctl restart pdns' ProcessUtilities.executioner(command) @@ -465,6 +518,7 @@ class DNS: extractDomain = tldextract.extract(domain) topLevelDomain = extractDomain.domain + '.' + extractDomain.suffix + subDomain = extractDomain.subdomain zone = Domains.objects.get(name=topLevelDomain) @@ -487,9 +541,18 @@ class DNS: auth=1) record.save() - if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: - command = ' systemctl restart pdns' - ProcessUtilities.executioner(command) + if len(subDomain) > 0: + if Records.objects.filter(domainOwner=zone, name="default._domainkey." + domain).count() == 0: + record = Records(domainOwner=zone, + domain_id=zone.id, + name="default._domainkey." + domain, + type="TXT", + content=output[leftIndex:rightIndex], + ttl=3600, + prio=0, + disabled=0, + auth=1) + record.save() if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = ' systemctl restart pdns' diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 0b1bd2ae2..ca17dc3ed 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -214,41 +214,39 @@ class mailUtilities: import tldextract - #extractDomain = tldextract.extract(virtualHostName) - #virtualHostName = extractDomain.domain + '.' + extractDomain.suffix + actualDomain = virtualHostName + extractDomain = tldextract.extract(virtualHostName) + virtualHostName = extractDomain.domain + '.' + extractDomain.suffix - if os.path.exists("/etc/opendkim/keys/" + virtualHostName + "/default.txt"): - return 1, "None" + if not os.path.exists("/etc/opendkim/keys/" + virtualHostName + "/default.txt"): + path = '/etc/opendkim/keys/%s' % (virtualHostName) + command = 'mkdir %s' % (path) + ProcessUtilities.normalExecutioner(command) + ## Generate keys - path = '/etc/opendkim/keys/%s' % (virtualHostName) - command = 'mkdir %s' % (path) - ProcessUtilities.normalExecutioner(command) + if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + command = "/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % (virtualHostName, virtualHostName) + else: + command = "opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % ( + virtualHostName, virtualHostName) + ProcessUtilities.normalExecutioner(command) + ## Fix permissions - ## Generate keys + command = "chown -R root:opendkim /etc/opendkim/keys/" + virtualHostName + ProcessUtilities.normalExecutioner(command) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = "/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % (virtualHostName, virtualHostName) - else: - command = "opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % ( - virtualHostName, virtualHostName) - ProcessUtilities.normalExecutioner(command) - ## Fix permissions + command = "chmod 640 /etc/opendkim/keys/" + virtualHostName + "/default.private" + ProcessUtilities.normalExecutioner(command) - command = "chown -R root:opendkim /etc/opendkim/keys/" + virtualHostName - ProcessUtilities.normalExecutioner(command) - - command = "chmod 640 /etc/opendkim/keys/" + virtualHostName + "/default.private" - ProcessUtilities.normalExecutioner(command) - - command = "chmod 644 /etc/opendkim/keys/" + virtualHostName + "/default.txt" - ProcessUtilities.normalExecutioner(command) + command = "chmod 644 /etc/opendkim/keys/" + virtualHostName + "/default.txt" + ProcessUtilities.normalExecutioner(command) ## Edit key file keyTable = "/etc/opendkim/KeyTable" - configToWrite = "default._domainkey." + virtualHostName + " " + virtualHostName + ":default:/etc/opendkim/keys/" + virtualHostName + "/default.private\n" + configToWrite = "default._domainkey." + actualDomain + " " + actualDomain + ":default:/etc/opendkim/keys/" + virtualHostName + "/default.private\n" writeToFile = open(keyTable, 'a') writeToFile.write(configToWrite) @@ -257,7 +255,7 @@ class mailUtilities: ## Edit signing table signingTable = "/etc/opendkim/SigningTable" - configToWrite = "*@" + virtualHostName + " default._domainkey." + virtualHostName + "\n" + configToWrite = "*@" + actualDomain + " default._domainkey." + actualDomain + "\n" writeToFile = open(signingTable, 'a') writeToFile.write(configToWrite) @@ -266,7 +264,7 @@ class mailUtilities: ## Trusted hosts trustedHosts = "/etc/opendkim/TrustedHosts" - configToWrite = virtualHostName + "\n" + configToWrite = actualDomain + "\n" writeToFile = open(trustedHosts, 'a') writeToFile.write(configToWrite) From d863d32a4ff4e2a8e54d39c0e6dd3a65781ebfd9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 15:48:46 +0500 Subject: [PATCH 170/240] fix: https://github.com/usmannasir/cyberpanel/issues/342 --- websiteFunctions/website.py | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 71619e209..67d26aeb8 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -3222,7 +3222,23 @@ StrictHostKeyChecking no else: return ACLManager.loadErrorJson() - if validators.domain(self.gitHost) and ACLManager.validateInput(self.gitUsername) and ACLManager.validateInput(self.gitReponame): + if self.gitHost.find(':') > -1: + gitHostDomain = self.gitHost.split(':')[0] + gitHostPort = self.gitHost.split(':')[1] + + if not validators.domain(gitHostDomain): + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + + try: + gitHostPort = int(gitHostPort) + except: + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + + else: + if not validators.domain(self.gitHost): + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + + if ACLManager.validateInput(self.gitUsername) and ACLManager.validateInput(self.gitReponame): pass else: return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') @@ -3613,10 +3629,25 @@ StrictHostKeyChecking no else: return ACLManager.loadErrorJson() + if self.gitHost.find(':') > -1: + gitHostDomain = self.gitHost.split(':')[0] + gitHostPort = self.gitHost.split(':')[1] + + if not validators.domain(gitHostDomain): + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + + try: + gitHostPort = int(gitHostPort) + except: + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + else: + if not validators.domain(self.gitHost): + return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') + ## Security check - if validators.domain(self.gitHost) and ACLManager.validateInput(self.gitUsername) and ACLManager.validateInput(self.gitReponame): + if ACLManager.validateInput(self.gitUsername) and ACLManager.validateInput(self.gitReponame): pass else: return ACLManager.loadErrorJson('status', 'Invalid characters in your input.') From 6972f868dd518e0137f42762adaa10f91d842dc2 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 16:13:45 +0500 Subject: [PATCH 171/240] fix: https://github.com/usmannasir/cyberpanel/issues/342 --- CyberCP/secMiddleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CyberCP/secMiddleware.py b/CyberCP/secMiddleware.py index 322c03bbf..783080e2b 100755 --- a/CyberCP/secMiddleware.py +++ b/CyberCP/secMiddleware.py @@ -73,7 +73,7 @@ class secMiddleware: or key == 'imageByPass' or key == 'passwordByPass' or key == 'cronCommand' \ or key == 'emailMessage' or key == 'configData' or key == 'rewriteRules' \ or key == 'modSecRules' or key == 'recordContentTXT' or key == 'SecAuditLogRelevantStatus' \ - or key == 'fileContent' or key == 'commands': + or key == 'fileContent' or key == 'commands' or key == 'gitHost': continue if value.find(';') > -1 or value.find('&&') > -1 or value.find('|') > -1 or value.find('...') > -1 \ or value.find("`") > -1 or value.find("$") > -1 or value.find("(") > -1 or value.find(")") > -1 \ From 9f8c1ef5f2d0687b7de1376c46374033e7f0d192 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 17:03:08 +0500 Subject: [PATCH 172/240] feature: display ssl port during list emails --- .../templates/mailServer/listEmails.html | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mailServer/templates/mailServer/listEmails.html b/mailServer/templates/mailServer/listEmails.html index f2462bb06..8b86a7786 100755 --- a/mailServer/templates/mailServer/listEmails.html +++ b/mailServer/templates/mailServer/listEmails.html @@ -85,6 +85,10 @@
    + + + + @@ -108,6 +112,10 @@ + + + + @@ -129,7 +137,15 @@ - + + + + + + + + + From f3322cdc9165838e3030647c5bc1e12db4316c12 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 22:13:06 +0500 Subject: [PATCH 173/240] table for scheduled backup logs --- plogical/upgrade.py | 27 +++++++++++++++++++++++++++ websiteFunctions/models.py | 12 +++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index f200bd53b..e10c9d5fe 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1233,6 +1233,33 @@ class Upgrade: CONSTRAINT `websiteFunctions_git_owner_id_ce74c7de_fk_websiteFu` FOREIGN KEY (`owner_id`) REFERENCES `websiteFunctions_websites` (`id`) )""" + try: + cursor.execute(query) + except: + pass + + qeury = """CREATE TABLE `websiteFunctions_backupjob` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `logFile` varchar(1000) NOT NULL, + `ipAddress` varchar(50) NOT NULL, + `port` varchar(15) NOT NULL, + PRIMARY KEY (`id`) +)""" + try: + cursor.execute(query) + except: + pass + + + query = """CREATE TABLE `websiteFunctions_backupjoblogs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `message` longtext NOT NULL, + `owner_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `websiteFunctions_bac_owner_id_af3d15f9_fk_websiteFu` (`owner_id`), + CONSTRAINT `websiteFunctions_bac_owner_id_af3d15f9_fk_websiteFu` FOREIGN KEY (`owner_id`) REFERENCES `websiteFunctions_backupjob` (`id`) +)""" + try: cursor.execute(query) except: diff --git a/websiteFunctions/models.py b/websiteFunctions/models.py index 93ebc01f1..2207b6b5f 100755 --- a/websiteFunctions/models.py +++ b/websiteFunctions/models.py @@ -8,7 +8,6 @@ from datetime import datetime # Create your models here. - class Websites(models.Model): admin = models.ForeignKey(Administrator, on_delete=models.PROTECT) package = models.ForeignKey(Package, on_delete=models.PROTECT) @@ -26,7 +25,6 @@ class ChildDomains(models.Model): ssl = models.IntegerField() phpSelection = models.CharField(max_length=10,default=None) - class Backups(models.Model): website = models.ForeignKey(Websites,on_delete=models.CASCADE) fileName = models.CharField(max_length=200) @@ -34,16 +32,13 @@ class Backups(models.Model): size = models.CharField(max_length=50) status = models.IntegerField(default=0) - class dest(models.Model): destLoc = models.CharField(unique=True,max_length=18) - class backupSchedules(models.Model): dest = models.ForeignKey(dest, on_delete=models.CASCADE) frequency = models.CharField(max_length=15) - class aliasDomains(models.Model): master = models.ForeignKey(Websites, on_delete=models.CASCADE) aliasDomain = models.CharField(max_length=75) @@ -54,4 +49,11 @@ class GitLogs(models.Model): type = models.CharField(max_length=5) message = models.TextField(max_length=65532) +class BackupJob(models.Model): + logFile = models.CharField(max_length=1000) + ipAddress = models.CharField(max_length=50) + port = models.CharField(max_length=15) +class BackupJobLogs(models.Model): + owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE) + message = models.TextField() \ No newline at end of file From dd8cd6fc2f97f4331316b3066841701753da1f9a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 22:23:21 +0500 Subject: [PATCH 174/240] table for scheduled backup logs --- plogical/backupScheduleLocal.py | 2 +- plogical/upgrade.py | 3 +++ websiteFunctions/models.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index a2c7f5f93..313594ffd 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -17,12 +17,12 @@ from plogical.processUtilities import ProcessUtilities from re import match,I,M import signal from datetime import datetime +from websiteFunctions.models import BackupJob, BackupJobLogs class backupScheduleLocal: localBackupPath = '/home/cyberpanel/localBackupPath' now = datetime.now() - @staticmethod def prepare(): try: diff --git a/plogical/upgrade.py b/plogical/upgrade.py index e10c9d5fe..a22fc9d65 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1243,6 +1243,8 @@ class Upgrade: `logFile` varchar(1000) NOT NULL, `ipAddress` varchar(50) NOT NULL, `port` varchar(15) NOT NULL, + `jobFailedSites` int(11) NOT NULL, + `jobSuccessSites` int(11) NOT NULL, PRIMARY KEY (`id`) )""" try: @@ -1255,6 +1257,7 @@ class Upgrade: `id` int(11) NOT NULL AUTO_INCREMENT, `message` longtext NOT NULL, `owner_id` int(11) NOT NULL, + `status` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `websiteFunctions_bac_owner_id_af3d15f9_fk_websiteFu` (`owner_id`), CONSTRAINT `websiteFunctions_bac_owner_id_af3d15f9_fk_websiteFu` FOREIGN KEY (`owner_id`) REFERENCES `websiteFunctions_backupjob` (`id`) diff --git a/websiteFunctions/models.py b/websiteFunctions/models.py index 2207b6b5f..32a05846d 100755 --- a/websiteFunctions/models.py +++ b/websiteFunctions/models.py @@ -53,7 +53,10 @@ class BackupJob(models.Model): logFile = models.CharField(max_length=1000) ipAddress = models.CharField(max_length=50) port = models.CharField(max_length=15) + jobSuccessSites = models.IntegerField() + jobFailedSites = models.IntegerField() class BackupJobLogs(models.Model): owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE) + status = models.IntegerField() message = models.TextField() \ No newline at end of file From 12a5401775f8199aa4c91de64c89a5ccda3a1115 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 20 May 2020 22:35:54 +0500 Subject: [PATCH 175/240] table for scheduled backup logs --- plogical/upgrade.py | 1 + websiteFunctions/models.py | 1 + 2 files changed, 2 insertions(+) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index a22fc9d65..d88edd44f 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1245,6 +1245,7 @@ class Upgrade: `port` varchar(15) NOT NULL, `jobFailedSites` int(11) NOT NULL, `jobSuccessSites` int(11) NOT NULL, + `location` int(11) NOT NULL, PRIMARY KEY (`id`) )""" try: diff --git a/websiteFunctions/models.py b/websiteFunctions/models.py index 32a05846d..ff4a5aea2 100755 --- a/websiteFunctions/models.py +++ b/websiteFunctions/models.py @@ -55,6 +55,7 @@ class BackupJob(models.Model): port = models.CharField(max_length=15) jobSuccessSites = models.IntegerField() jobFailedSites = models.IntegerField() + location = models.IntegerField() class BackupJobLogs(models.Model): owner = models.ForeignKey(BackupJob, on_delete=models.CASCADE) From 661d866e9958c036f180d37da50228371e44785b Mon Sep 17 00:00:00 2001 From: hennaboy Date: Wed, 20 May 2020 18:45:42 +0100 Subject: [PATCH 176/240] Update mailscannerinstaller.sh Updated for Ubuntu 20 compatibility --- CPScripts/mailscannerinstaller.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 875e6c791..927d0203e 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -63,7 +63,7 @@ elif [ "$OS" = "NAME=\"Ubuntu\"" ];then apt-get install -y libmysqlclient-dev -apt-get install -y cpanminus gcc perl bzip2 zip make patch automake rpm libarchive-zip-perl libfilesys-df-perl libole-storage-lite-perl libsys-hostname-long-perl libsys-sigaction-perl libregexp-common-net-cidr-perl libmime-tools-perl libdbd-sqlite3-perl binutils build-essential libfilesys-df-perl zlib1g unzip mlocate clamav libdbd-mysql-perl unrar libclamav-dev libclamav-client-perl libclamunrar7 +apt-get install -y cpanminus gcc perl bzip2 zip make patch automake rpm libarchive-zip-perl libfilesys-df-perl libole-storage-lite-perl libsys-hostname-long-perl libsys-sigaction-perl libregexp-common-net-cidr-perl libmime-tools-perl libdbd-sqlite3-perl binutils build-essential libfilesys-df-perl zlib1g unzip mlocate clamav libdbd-mysql-perl unrar libclamav-dev libclamav-client-perl libclamunrar9 cpanm Encoding::FixLatin cpanm Digest::SHA1 @@ -98,7 +98,7 @@ systemctl restart postfix wget https://github.com/MailScanner/v5/archive/master.zip unzip master.zip -cd /root/v5-master/builds +cd /usr/local/CyberCP/CPScripts/v5-master/builds if [ "$OS" = "NAME=\"Ubuntu\"" ];then @@ -171,7 +171,14 @@ cp /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php.example /usr/local/C sed -i "s/^define('DB_USER',.*/define('DB_USER','root');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php sed -i "s/^define('DB_PASS',.*/define('DB_PASS','${PASSWORD}');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php sed -i "s/^define('MAILWATCH_HOME',.*/define(\'MAILWATCH_HOME\', \'\/usr\/local\/CyberCP\/public\/mailwatch\/mailscanner');/" /usr/local/CyberCP/public/mailwatch/mailscanner/conf.php + +MSDEFAULT=/etc/MailScanner/defaults +if [ -f "$MSDEFAULT" ];then sed -i 's/^run_mailscanner=.*/run_mailscanner=1/' /etc/MailScanner/defaults +elif [ ! -f "$MSDEFAULT" ];then +touch /etc/MailScanner/defaults +echo "run_mailscanner=1" >> /etc/MailScanner/defaults +fi cp /usr/local/CyberCP/public/mailwatch/MailScanner_perl_scripts/MailWatchConf.pm /usr/share/MailScanner/perl/custom/ sed -i 's/^my (\$db_user) = .*/my (\$db_user) = \x27'${USER}'\x27;/' /usr/share/MailScanner/perl/custom/MailWatchConf.pm @@ -227,6 +234,7 @@ EOL echo "Adding Sieve to /etc/dovecot/dovecot.conf" cat >> /etc/dovecot/dovecot.conf < Date: Thu, 21 May 2020 23:21:36 +0500 Subject: [PATCH 177/240] add detailed schedule backup logging --- backup/backupManager.py | 95 ++++++++++++++- backup/static/backup/backup.js | 66 ++++++++++- backup/templates/backup/backupLogs.html | 125 ++++++++++++++++++++ backup/templates/backup/backupSchedule.html | 9 +- backup/urls.py | 4 +- backup/views.py | 17 +++ plogical/backupSchedule.py | 21 +++- plogical/backupScheduleLocal.py | 24 +++- serverStatus/views.py | 7 -- static/backup/backup.js | 66 ++++++++++- 10 files changed, 413 insertions(+), 21 deletions(-) create mode 100755 backup/templates/backup/backupLogs.html diff --git a/backup/backupManager.py b/backup/backupManager.py index 6e298d26b..eb9f4fe73 100755 --- a/backup/backupManager.py +++ b/backup/backupManager.py @@ -9,7 +9,7 @@ django.setup() import json from plogical.acl import ACLManager import plogical.CyberCPLogFileWriter as logging -from websiteFunctions.models import Websites, Backups, dest, backupSchedules +from websiteFunctions.models import Websites, Backups, dest, backupSchedules, BackupJob, BackupJobLogs from plogical.virtualHostUtilities import virtualHostUtilities import subprocess import shlex @@ -1186,3 +1186,96 @@ class BackupManager: data = {'cancelStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data) return HttpResponse(json_data) + + def backupLogs(self, request = None, userID = None, data = None): + try: + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadError() + + all_files = [] + + logFiles = BackupJob.objects.all().order_by('-id') + + for logFile in logFiles: + all_files.append(logFile.logFile) + + return render(request, 'backup/backupLogs.html', {'backups': all_files}) + + except BaseException as msg: + return HttpResponse(str(msg)) + + def fetchLogs(self, userID = None, data = None): + try: + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadError() + + page = int(str(data['page']).rstrip('\n')) + recordsToShow = int(data['recordsToShow']) + logFile = data['logFile'] + + logJob = BackupJob.objects.get(logFile=logFile) + + logs = logJob.backupjoblogs_set.all() + + from s3Backups.s3Backups import S3Backups + from plogical.backupSchedule import backupSchedule + + pagination = S3Backups.getPagination(len(logs), recordsToShow) + endPageNumber, finalPageNumber = S3Backups.recordsPointer(page, recordsToShow) + finalLogs = logs[finalPageNumber:endPageNumber] + + json_data = "[" + checker = 0 + counter = 0 + + for log in finalLogs: + + if log.status == backupSchedule.INFO: + status = 'INFO' + else: + status = 'ERROR' + + dic = { + 'LEVEL': status, "Message": log.message + } + if checker == 0: + json_data = json_data + json.dumps(dic) + checker = 1 + else: + json_data = json_data + ',' + json.dumps(dic) + counter = counter + 1 + + json_data = json_data + ']' + + if logJob.location == backupSchedule.LOCAL: + location = 'local' + else: + location = 'remote' + + + data = { + 'status': 1, + 'error_message': 'None', + 'logs': json_data, + 'pagination': pagination, + 'jobSuccessSites': logJob.jobSuccessSites, + 'jobFailedSites': logJob.jobFailedSites, + 'location': location + } + + + json_data = json.dumps(data) + return HttpResponse(json_data) + + except BaseException as msg: + data = {'remoteRestoreStatus': 0, 'error_message': str(msg)} + json_data = json.dumps(data) + return HttpResponse(json_data) diff --git a/backup/static/backup/backup.js b/backup/static/backup/backup.js index cbe74d8ef..59c654f87 100755 --- a/backup/static/backup/backup.js +++ b/backup/static/backup/backup.js @@ -1541,4 +1541,68 @@ app.controller('remoteBackupControl', function ($scope, $http, $timeout) { }); -///** Backup site ends **/// \ No newline at end of file +///** Backup site ends **/// + + +//*** Remote Backup site ****// +app.controller('backupLogsScheduled', function ($scope, $http, $timeout) { + + $scope.cyberpanelLoading = true; + $scope.logDetails = true; + + $scope.currentPage = 1; + $scope.recordsToShow = 10; + + $scope.fetchLogs = function () { + + $scope.cyberpanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + logFile: $scope.logFile, + recordsToShow: $scope.recordsToShow, + page: $scope.currentPage + }; + + dataurl = "/backup/fetchLogs"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + $scope.logDetails = false; + $scope.logs = JSON.parse(response.data.logs); + $scope.pagination = response.data.pagination; + $scope.jobSuccessSites = response.data.jobSuccessSites; + $scope.jobFailedSites = response.data.jobFailedSites; + $scope.location = response.data.location; + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + +}); + +///** Backup site ends **/// diff --git a/backup/templates/backup/backupLogs.html b/backup/templates/backup/backupLogs.html new file mode 100755 index 000000000..0c7dadf49 --- /dev/null +++ b/backup/templates/backup/backupLogs.html @@ -0,0 +1,125 @@ +{% extends "baseTemplate/index.html" %} +{% load i18n %} +{% block title %}{% trans "Backup Logs - CyberPanel" %}{% endblock %} +{% block content %} + + {% load static %} + + {% get_current_language as LANGUAGE_CODE %} + + + +
    +
    +

    {% trans "Backup Logs" %}

    +

    {% trans "On this page you can view detailed logs of your local and remote scheduled backups." %}

    +
    + +
    +
    +

    + {% trans "Restore Website" %} +

    +
    + +
    + + +
    + +
    + +
    +
    + + + +
    +
    + +
    {% trans "Port" %} 110
    {% trans "Port" %}995 (SSL)
    {% trans "SSL" %} STARTTLS{% trans "Port" %} 143
    {% trans "Port" %}993 (SSL)
    {% trans "SSL" %} STARTTLS
    {% trans "Port" %}58725
    {% trans "Port" %}587 (SSL)
    {% trans "Port" %}465 (SSL)
    {% trans "SSL" %}
    + + + + + + + + + + + + + + +
    {% trans "Successful Sites" %}{% trans "Failed Sites" %}{% trans "Location" %}
    {$ jobSuccessSites $}{$ jobFailedSites $}{$ location $}
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + +
    {% trans "LEVEL" %}{% trans "Message" %}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + + +
    + + +{% endblock %} \ No newline at end of file diff --git a/backup/templates/backup/backupSchedule.html b/backup/templates/backup/backupSchedule.html index 69de37618..6fb11b5b5 100755 --- a/backup/templates/backup/backupSchedule.html +++ b/backup/templates/backup/backupSchedule.html @@ -11,7 +11,7 @@

    {% trans "Schedule Back up" %} - {% trans "Remote Backups" %}

    {% trans "On this page you can schedule Back ups to localhost or remote server (If you have added one)." %}

    @@ -20,8 +20,11 @@

    - {% trans "Schedule Back up" %} + {% trans "Schedule Back up" %} - {% trans "Backup Logs" %}

    diff --git a/backup/urls.py b/backup/urls.py index 0a7164ba2..9d09770a5 100755 --- a/backup/urls.py +++ b/backup/urls.py @@ -48,7 +48,7 @@ urlpatterns = [ url(r'^localInitiate$', views.localInitiate, name='localInitiate'), - - + url(r'^backupLogs$', views.backupLogs, name='backupLogs'), + url(r'^fetchLogs$', views.fetchLogs, name='fetchLogs'), ] \ No newline at end of file diff --git a/backup/views.py b/backup/views.py index ef8842283..bf6512c25 100755 --- a/backup/views.py +++ b/backup/views.py @@ -327,6 +327,23 @@ def cancelRemoteBackup(request): except KeyError: return redirect(loadLoginPage) +def backupLogs(request): + try: + userID = request.session['userID'] + bm = BackupManager() + return bm.backupLogs(request, userID) + except KeyError: + return redirect(loadLoginPage) + +def fetchLogs(request): + try: + userID = request.session['userID'] + + wm = BackupManager() + return wm.fetchLogs(userID, json.loads(request.body)) + + except KeyError: + return redirect(loadLoginPage) @csrf_exempt def localInitiate(request): diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index eba989f92..a6a420e8e 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -12,7 +12,7 @@ import os import time from plogical.backupUtilities import backupUtilities from re import match,I,M -from websiteFunctions.models import Backups +from websiteFunctions.models import Backups, BackupJob, BackupJobLogs from plogical.processUtilities import ProcessUtilities from random import randint import json, requests @@ -22,14 +22,22 @@ import signal class backupSchedule: now = datetime.now() + LOCAL = 0 + REMOTE = 1 + INFO = 0 + ERROR = 1 + backupLog = '' @staticmethod - def remoteBackupLogging(fileName, message): + def remoteBackupLogging(fileName, message, status = 0): try: file = open(fileName,'a') file.writelines("[" + time.strftime("%m.%d.%Y_%H-%M-%S") + "] "+ message + "\n") print(("[" + time.strftime("%m.%d.%Y_%H-%M-%S") + "] "+ message + "\n")) file.close() + + BackupJobLogs(owner=backupSchedule.backupLog, status=status, message="[" + time.strftime("%m.%d.%Y_%H-%M-%S") + "] "+ message).save() + except IOError as msg: return "Can not write to error file." @@ -120,18 +128,25 @@ class backupSchedule: except: pass - backupSchedule.remoteBackupLogging(backupLogPath, "An error occurred, Error message: " + status) + backupSchedule.remoteBackupLogging(backupLogPath, "Local backup creating failed for %s, Error message: %s" % (virtualHost, status), backupSchedule.ERROR) + try: os.remove(pathToFile) except: pass return 0, tempStoragePath + elif os.path.exists(schedulerPath): + backupSchedule.remoteBackupLogging(backupLogPath, 'Backup process killed without reporting any error.', + backupSchedule.ERROR) os.remove(schedulerPath) return 0, 'Backup process killed without reporting any error.' except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [119:startBackup]") + backupSchedule.remoteBackupLogging(backupLogPath, + "Local backup creating failed for %s, Error message: %s" % ( + virtualHost, str(msg)), backupSchedule.ERROR) return 0, str(msg) @staticmethod diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index 313594ffd..1fcee1aea 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -29,6 +29,12 @@ class backupScheduleLocal: backupRunTime = time.strftime("%m.%d.%Y_%H-%M-%S") backupLogPath = "/usr/local/lscp/logs/local_backup_log." + backupRunTime + jobSuccessSites = 0 + jobFailedSites = 0 + + backupSchedule.backupLog = BackupJob(logFile=backupLogPath, location=backupSchedule.LOCAL, jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites) + backupSchedule.backupLog.save() + writeToFile = open(backupLogPath, "a") backupSchedule.remoteBackupLogging(backupLogPath, "#################################################") @@ -43,6 +49,9 @@ class backupScheduleLocal: try: retValues = backupSchedule.createLocalBackup(virtualHost, backupLogPath) + if retValues[0] == 0: + continue + if os.path.exists(backupScheduleLocal.localBackupPath): backupPath = retValues[1] + ".tar.gz" localBackupPath = '%s/%s' % (open(backupScheduleLocal.localBackupPath, 'r').read().rstrip('/'), backupRunTime) @@ -52,10 +61,14 @@ class backupScheduleLocal: command = 'mv %s %s' % (backupPath, localBackupPath) ProcessUtilities.normalExecutioner(command) - except BaseException as msg: - backupSchedule.remoteBackupLogging(backupLogPath, - '[ERROR] Backup failed for %s, error: %s moving on..' % (virtualHost, str(msg))) + jobSuccessSites = jobSuccessSites + 1 + except BaseException as msg: + + jobFailedSites = jobFailedSites + 1 + + backupSchedule.remoteBackupLogging(backupLogPath, + '[ERROR] Backup failed for %s, error: %s moving on..' % (virtualHost, str(msg)), backupSchedule.ERROR) @@ -71,6 +84,11 @@ class backupScheduleLocal: writeToFile.close() + job = BackupJob.objects.get(logFile=backupLogPath) + job.jobFailedSites = jobFailedSites + job.jobSuccessSites = jobSuccessSites + job.save() + except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [214:startBackup]") diff --git a/serverStatus/views.py b/serverStatus/views.py index 33efa23f6..60e7bc850 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -93,7 +93,6 @@ def litespeedStatus(request): logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[litespeedStatus]") return redirect(loadLoginPage) - def stopOrRestartLitespeed(request): try: userID = request.session['userID'] @@ -127,7 +126,6 @@ def stopOrRestartLitespeed(request): logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[stopOrRestartLitespeed]") return HttpResponse("Not Logged in as admin") - def cyberCPMainLogFile(request): try: userID = request.session['userID'] @@ -145,7 +143,6 @@ def cyberCPMainLogFile(request): logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[cyberCPMainLogFile]") return redirect(loadLoginPage) - def getFurtherDataFromLogFile(request): try: userID = request.session['userID'] @@ -196,7 +193,6 @@ def services(request): except KeyError: return redirect(loadLoginPage) - def servicesStatus(request): try: userID = request.session['userID'] @@ -291,7 +287,6 @@ def servicesStatus(request): except KeyError: return redirect(loadLoginPage) - def servicesAction(request): try: userID = request.session['userID'] @@ -344,7 +339,6 @@ def servicesAction(request): final_json = json.dumps(final_dic) return HttpResponse(final_json) - def switchTOLSWS(request): try: userID = request.session['userID'] @@ -378,7 +372,6 @@ def switchTOLSWS(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) - def switchTOLSWSStatus(request): try: diff --git a/static/backup/backup.js b/static/backup/backup.js index cbe74d8ef..59c654f87 100644 --- a/static/backup/backup.js +++ b/static/backup/backup.js @@ -1541,4 +1541,68 @@ app.controller('remoteBackupControl', function ($scope, $http, $timeout) { }); -///** Backup site ends **/// \ No newline at end of file +///** Backup site ends **/// + + +//*** Remote Backup site ****// +app.controller('backupLogsScheduled', function ($scope, $http, $timeout) { + + $scope.cyberpanelLoading = true; + $scope.logDetails = true; + + $scope.currentPage = 1; + $scope.recordsToShow = 10; + + $scope.fetchLogs = function () { + + $scope.cyberpanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = { + logFile: $scope.logFile, + recordsToShow: $scope.recordsToShow, + page: $scope.currentPage + }; + + dataurl = "/backup/fetchLogs"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + function ListInitialData(response) { + $scope.cyberpanelLoading = true; + if (response.data.status === 1) { + $scope.logDetails = false; + $scope.logs = JSON.parse(response.data.logs); + $scope.pagination = response.data.pagination; + $scope.jobSuccessSites = response.data.jobSuccessSites; + $scope.jobFailedSites = response.data.jobFailedSites; + $scope.location = response.data.location; + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + } + function cantLoadInitialData(response) { + $scope.cyberpanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + +}); + +///** Backup site ends **/// From df4cea0ebb0a10f2f36f373d9bd046a8a155fe7a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 22 May 2020 16:03:49 +0500 Subject: [PATCH 178/240] prevent local backup from running multiple processes --- plogical/backupSchedule.py | 7 +++++++ plogical/backupScheduleLocal.py | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index a6a420e8e..6c8f85af0 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -228,6 +228,13 @@ class backupSchedule: backupLogPath = "/usr/local/lscp/logs/backup_log."+time.strftime("%m.%d.%Y_%H-%M-%S") + jobSuccessSites = 0 + jobFailedSites = 0 + + backupSchedule.backupLog = BackupJob(logFile=backupLogPath, location=backupSchedule.REMOTE, + jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites) + backupSchedule.backupLog.save() + backupSchedule.remoteBackupLogging(backupLogPath,"#################################################") backupSchedule.remoteBackupLogging(backupLogPath," Backup log for: " +time.strftime("%m.%d.%Y_%H-%M-%S")) backupSchedule.remoteBackupLogging(backupLogPath,"#################################################\n") diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index 1fcee1aea..d37b1bb43 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -21,11 +21,22 @@ from websiteFunctions.models import BackupJob, BackupJobLogs class backupScheduleLocal: localBackupPath = '/home/cyberpanel/localBackupPath' + runningPath = '/home/cyberpanel/localBackupPID' now = datetime.now() @staticmethod def prepare(): try: + + if os.path.exists(backupScheduleLocal.runningPath): + pid = open(backupScheduleLocal.runningPath, 'r').read() + print('Local backup is already running with PID: %s. If you want to run againly kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) + return 0 + + writeToFile = open(backupScheduleLocal.runningPath, 'w') + writeToFile.write(str(os.getpid())) + writeToFile.close() + backupRunTime = time.strftime("%m.%d.%Y_%H-%M-%S") backupLogPath = "/usr/local/lscp/logs/local_backup_log." + backupRunTime @@ -70,8 +81,6 @@ class backupScheduleLocal: backupSchedule.remoteBackupLogging(backupLogPath, '[ERROR] Backup failed for %s, error: %s moving on..' % (virtualHost, str(msg)), backupSchedule.ERROR) - - backupSchedule.remoteBackupLogging(backupLogPath, "") backupSchedule.remoteBackupLogging(backupLogPath, "") @@ -89,6 +98,9 @@ class backupScheduleLocal: job.jobSuccessSites = jobSuccessSites job.save() + if os.path.exists(backupScheduleLocal.runningPath): + os.remove(backupScheduleLocal.runningPath) + except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [214:startBackup]") From 79aa5d4c271496f81e35ca459bfd56ef53635b30 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 22 May 2020 16:11:32 +0500 Subject: [PATCH 179/240] add similar logs for remote schedule backups --- plogical/backupSchedule.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 6c8f85af0..91a5c452e 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -27,6 +27,7 @@ class backupSchedule: INFO = 0 ERROR = 1 backupLog = '' + runningPath = '/home/cyberpanel/remoteBackupPID' @staticmethod def remoteBackupLogging(fileName, message, status = 0): @@ -183,6 +184,8 @@ class backupSchedule: backupSchedule.remoteBackupLogging(backupLogPath, "") else: + backupSchedule.remoteBackupLogging(backupLogPath, 'Remote backup creation failed for %s.' % (virtualHost) ) + backupSchedule.remoteBackupLogging(backupLogPath, "") backupSchedule.remoteBackupLogging(backupLogPath, "") @@ -224,16 +227,21 @@ class backupSchedule: @staticmethod def prepare(): try: + + if os.path.exists(backupSchedule.runningPath): + pid = open(backupSchedule.runningPath, 'r').read() + print('Remote backup is already running with PID: %s. If you want to run againly kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) + return 0 + + writeToFile = open(backupSchedule.runningPath, 'w') + writeToFile.write(str(os.getpid())) + writeToFile.close() + + destinations = backupUtilities.destinationsPath backupLogPath = "/usr/local/lscp/logs/backup_log."+time.strftime("%m.%d.%Y_%H-%M-%S") - jobSuccessSites = 0 - jobFailedSites = 0 - - backupSchedule.backupLog = BackupJob(logFile=backupLogPath, location=backupSchedule.REMOTE, - jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites) - backupSchedule.backupLog.save() backupSchedule.remoteBackupLogging(backupLogPath,"#################################################") backupSchedule.remoteBackupLogging(backupLogPath," Backup log for: " +time.strftime("%m.%d.%Y_%H-%M-%S")) @@ -255,6 +263,13 @@ class backupSchedule: ipAddress = data['ipAddress'] + jobSuccessSites = 0 + jobFailedSites = 0 + + backupSchedule.backupLog = BackupJob(logFile=backupLogPath, location=backupSchedule.REMOTE, + jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites, ipAddress=ipAddress, port=port) + backupSchedule.backupLog.save() + ## IPAddress of local server ipFile = "/etc/cyberpanel/machineIP" @@ -287,7 +302,8 @@ class backupSchedule: backupSchedule.remoteBackupLogging(backupLogPath, "Remote backup job completed.\n") - + if os.path.exists(backupSchedule.runningPath): + os.remove(backupSchedule.runningPath) except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [prepare]") From 8dae110a9ce1d02173b7afa5f4c85300a1ba556e Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 22 May 2020 16:57:44 +0500 Subject: [PATCH 180/240] bug fix: schedule backup logs --- plogical/backupSchedule.py | 31 ++++++++++++++++--------------- plogical/backupScheduleLocal.py | 2 +- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 91a5c452e..0227aed6d 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -230,26 +230,13 @@ class backupSchedule: if os.path.exists(backupSchedule.runningPath): pid = open(backupSchedule.runningPath, 'r').read() - print('Remote backup is already running with PID: %s. If you want to run againly kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) + print('\n\nRemote backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) return 0 writeToFile = open(backupSchedule.runningPath, 'w') writeToFile.write(str(os.getpid())) writeToFile.close() - - destinations = backupUtilities.destinationsPath - - backupLogPath = "/usr/local/lscp/logs/backup_log."+time.strftime("%m.%d.%Y_%H-%M-%S") - - - backupSchedule.remoteBackupLogging(backupLogPath,"#################################################") - backupSchedule.remoteBackupLogging(backupLogPath," Backup log for: " +time.strftime("%m.%d.%Y_%H-%M-%S")) - backupSchedule.remoteBackupLogging(backupLogPath,"#################################################\n") - - backupSchedule.remoteBackupLogging(backupLogPath, "") - backupSchedule.remoteBackupLogging(backupLogPath, "") - ## IP of Remote server. destinations = backupUtilities.destinationsPath @@ -266,10 +253,24 @@ class backupSchedule: jobSuccessSites = 0 jobFailedSites = 0 + backupLogPath = "/usr/local/lscp/logs/backup_log." + time.strftime("%m.%d.%Y_%H-%M-%S") + backupSchedule.backupLog = BackupJob(logFile=backupLogPath, location=backupSchedule.REMOTE, - jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites, ipAddress=ipAddress, port=port) + jobSuccessSites=jobSuccessSites, jobFailedSites=jobFailedSites, + ipAddress=ipAddress, port=port) backupSchedule.backupLog.save() + + destinations = backupUtilities.destinationsPath + + + backupSchedule.remoteBackupLogging(backupLogPath,"#################################################") + backupSchedule.remoteBackupLogging(backupLogPath," Backup log for: " +time.strftime("%m.%d.%Y_%H-%M-%S")) + backupSchedule.remoteBackupLogging(backupLogPath,"#################################################\n") + + backupSchedule.remoteBackupLogging(backupLogPath, "") + backupSchedule.remoteBackupLogging(backupLogPath, "") + ## IPAddress of local server ipFile = "/etc/cyberpanel/machineIP" diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index d37b1bb43..3a69f20fa 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -30,7 +30,7 @@ class backupScheduleLocal: if os.path.exists(backupScheduleLocal.runningPath): pid = open(backupScheduleLocal.runningPath, 'r').read() - print('Local backup is already running with PID: %s. If you want to run againly kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) + print('\n\nLocal backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) return 0 writeToFile = open(backupScheduleLocal.runningPath, 'w') From d71b3045bb04211b42d2c01c63958506f8f8ebaa Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 22 May 2020 22:02:40 +0500 Subject: [PATCH 181/240] bug fix: fix text --- backup/templates/backup/backupLogs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backup/templates/backup/backupLogs.html b/backup/templates/backup/backupLogs.html index 0c7dadf49..2736eddef 100755 --- a/backup/templates/backup/backupLogs.html +++ b/backup/templates/backup/backupLogs.html @@ -18,7 +18,7 @@

    - {% trans "Restore Website" %} + {% trans "Backup Logs" %}

    From ca1d507ac242439afbe4e3930477860bd02abf49 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 23 May 2020 01:41:06 +0500 Subject: [PATCH 182/240] bug fix: https://github.com/usmannasir/cyberpanel/issues/346 --- manageServices/serviceManager.py | 16 ++++++----- .../manageServices/managePowerDNS.html | 18 ++++++------- manageServices/views.py | 27 ++++++++++++++++--- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/manageServices/serviceManager.py b/manageServices/serviceManager.py index c37468a3b..877c30472 100755 --- a/manageServices/serviceManager.py +++ b/manageServices/serviceManager.py @@ -30,8 +30,8 @@ class ServiceManager: ipsString = ipsString.rstrip(' ') ipStringNoSubnet = ipStringNoSubnet.rstrip(' ') - - + tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) + writeToFile = open(tempPath, 'w') for items in data: if items.find('allow-axfr-ips') > -1: @@ -49,14 +49,14 @@ class ServiceManager: if items.find('slave') > -1: continue + if items.find('master') > -1: + continue + counter = counter + 1 - tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) - writeToFile = open(tempPath, 'w') - - for items in data: writeToFile.writelines(items + '\n') + writeToFile.writelines('allow-axfr-ips=' + ipsString + '\n') writeToFile.writelines('also-notify=' + ipStringNoSubnet + '\n') writeToFile.writelines('daemon=no\n') @@ -82,6 +82,9 @@ class ServiceManager: if items.find('slave') > -1: continue + if items.find('slave=yes') > 1: + return 0 + counter = counter + 1 tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) @@ -112,6 +115,5 @@ superslave=yes Supermasters(ip=self.extraArgs['masterServerIP'], nameserver=self.extraArgs['slaveServerNS'], account='').save() command = 'sudo mv ' + tempPath + ' ' + path - #subprocess.call(shlex.split(command)) ProcessUtilities.executioner(command) diff --git a/manageServices/templates/manageServices/managePowerDNS.html b/manageServices/templates/manageServices/managePowerDNS.html index 685f53474..013dd0533 100755 --- a/manageServices/templates/manageServices/managePowerDNS.html +++ b/manageServices/templates/manageServices/managePowerDNS.html @@ -51,57 +51,57 @@
    -
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    - +
    +
    diff --git a/manageServices/views.py b/manageServices/views.py index 1facec6a0..b95965ed6 100755 --- a/manageServices/views.py +++ b/manageServices/views.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- - from django.shortcuts import render from django.shortcuts import HttpResponse, redirect import plogical.CyberCPLogFileWriter as logging @@ -14,19 +13,41 @@ from .serviceManager import ServiceManager from plogical.processUtilities import ProcessUtilities # Create your views here. - def managePowerDNS(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) + if currentACL['admin'] == 1: pass else: return ACLManager.loadError() try: - return render(request, 'manageServices/managePowerDNS.html', {"status": 1}) + data = {} + data['status'] = 1 + + pdnsStatus = PDNSStatus.objects.get(pk=1) + + if pdnsStatus.type == 'MASTER': + counter = 1 + + for items in SlaveServers.objects.all(): + + if counter == 1: + data['slaveServer'] = items.slaveServer + data['slaveServerIP'] = items.slaveServerIP + else: + data['slaveServer%s' % (str(counter))] = items.slaveServer + data['slaveServerIP%s' % (str(counter))] = items.slaveServerIP + + counter = counter + 1 + else: + data['slaveServerNS'] = pdnsStatus.masterServer + data['masterServerIP'] = pdnsStatus.masterIP + + return render(request, 'manageServices/managePowerDNS.html', data) except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg)) return HttpResponse("See CyberCP main log file.") From bb63e366030b2f8b5053cb7d0e4502888b25a2c7 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 23 May 2020 01:57:30 +0500 Subject: [PATCH 183/240] bug fix: https://github.com/usmannasir/cyberpanel/issues/346 --- manageServices/serviceManager.py | 73 +++++++++++++++++--------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/manageServices/serviceManager.py b/manageServices/serviceManager.py index 877c30472..27917605a 100755 --- a/manageServices/serviceManager.py +++ b/manageServices/serviceManager.py @@ -6,6 +6,8 @@ from manageServices.models import SlaveServers class ServiceManager: + slaveConfPath = '/home/cyberpanel/slaveConf' + def __init__(self, extraArgs): self.extraArgs = extraArgs @@ -64,50 +66,55 @@ class ServiceManager: writeToFile.writelines('master=yes\n') writeToFile.close() else: - counter = 0 + import os - for items in data: - if items.find('allow-axfr-ips') > -1: - continue + if not os.path.exists(ServiceManager.slaveConfPath): - if items.find('also-notify') > -1: - continue + writeToFile = open(ServiceManager.slaveConfPath, 'w') + writeToFile.write('configured') + writeToFile.close() - if items.find('daemon=') > -1: - continue + counter = 0 - if items.find('disable-axfr') > -1: - continue + for items in data: + if items.find('allow-axfr-ips') > -1: + continue - if items.find('slave') > -1: - continue + if items.find('also-notify') > -1: + continue - if items.find('slave=yes') > 1: - return 0 + if items.find('daemon=') > -1: + continue - counter = counter + 1 + if items.find('disable-axfr') > -1: + continue - tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) - writeToFile = open(tempPath, 'w') + if items.find('slave') > -1: + continue - for items in data: - writeToFile.writelines(items + '\n') + counter = counter + 1 - slaveData = """slave=yes -daemon=yes -disable-axfr=yes -guardian=yes -local-address=0.0.0.0 -local-port=53 -master=no -slave-cycle-interval=60 -setgid=pdns -setuid=pdns -superslave=yes -""" + tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) + writeToFile = open(tempPath, 'w') - writeToFile.writelines(slaveData) - writeToFile.close() + for items in data: + writeToFile.writelines(items + '\n') + + slaveData = """slave=yes + daemon=yes + disable-axfr=yes + guardian=yes + local-address=0.0.0.0 + local-port=53 + master=no + slave-cycle-interval=60 + setgid=pdns + setuid=pdns + superslave=yes + """ + + writeToFile.writelines(slaveData) + writeToFile.close() for items in Supermasters.objects.all(): items.delete() From 6a6d3261836f7c59481571e55c7823415ebfd6d7 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 23 May 2020 02:04:02 +0500 Subject: [PATCH 184/240] bug fix: https://github.com/usmannasir/cyberpanel/issues/346 --- manageServices/serviceManager.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/manageServices/serviceManager.py b/manageServices/serviceManager.py index 27917605a..4823be81d 100755 --- a/manageServices/serviceManager.py +++ b/manageServices/serviceManager.py @@ -100,27 +100,28 @@ class ServiceManager: for items in data: writeToFile.writelines(items + '\n') - slaveData = """slave=yes - daemon=yes - disable-axfr=yes - guardian=yes - local-address=0.0.0.0 - local-port=53 - master=no - slave-cycle-interval=60 - setgid=pdns - setuid=pdns - superslave=yes - """ + slaveData = """ +slave=yes +daemon=yes +disable-axfr=yes +guardian=yes +local-address=0.0.0.0 +local-port=53 +master=no +slave-cycle-interval=60 +setgid=pdns +setuid=pdns +superslave=yes +""" writeToFile.writelines(slaveData) writeToFile.close() + command = 'sudo mv ' + tempPath + ' ' + path + ProcessUtilities.executioner(command) + for items in Supermasters.objects.all(): items.delete() Supermasters(ip=self.extraArgs['masterServerIP'], nameserver=self.extraArgs['slaveServerNS'], account='').save() - command = 'sudo mv ' + tempPath + ' ' + path - ProcessUtilities.executioner(command) - From 00bfaa1bb391815cf18e807d8742380bcd56370d Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 23 May 2020 18:17:55 +0500 Subject: [PATCH 185/240] bug fix: https://github.com/usmannasir/cyberpanel/issues/347 --- manageServices/serviceManager.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manageServices/serviceManager.py b/manageServices/serviceManager.py index 4823be81d..05ef80e92 100755 --- a/manageServices/serviceManager.py +++ b/manageServices/serviceManager.py @@ -26,11 +26,11 @@ class ServiceManager: ipStringNoSubnet = '' for items in SlaveServers.objects.all(): - ipsString = ipsString + '%s/32 ' % (items.slaveServerIP) - ipStringNoSubnet = ipStringNoSubnet + '%s ' % (items.slaveServerIP) + ipsString = ipsString + '%s/32, ' % (items.slaveServerIP) + ipStringNoSubnet = ipStringNoSubnet + '%s, ' % (items.slaveServerIP) - ipsString = ipsString.rstrip(' ') - ipStringNoSubnet = ipStringNoSubnet.rstrip(' ') + ipsString = ipsString.rstrip(', ') + ipStringNoSubnet = ipStringNoSubnet.rstrip(', ') tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) writeToFile = open(tempPath, 'w') From b5aa5b4def12b8d448051a4a41d233204d22e7a9 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sat, 23 May 2020 15:24:56 +0100 Subject: [PATCH 186/240] Update mailscannerinstaller.sh Updated for Ubuntu 20.04 --- CPScripts/mailscannerinstaller.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 927d0203e..39288c5a1 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -27,6 +27,7 @@ fi if [ -f /etc/os-release ];then OS=$(head -1 /etc/os-release) +VERSION=$(sed '6q;d' /etc/os-release) fi if [ "$OS" = "NAME=\"CentOS Linux\"" ];then @@ -61,9 +62,9 @@ fi elif [ "$OS" = "NAME=\"Ubuntu\"" ];then -apt-get install -y libmysqlclient-dev + apt-get install -y libmysqlclient-dev -apt-get install -y cpanminus gcc perl bzip2 zip make patch automake rpm libarchive-zip-perl libfilesys-df-perl libole-storage-lite-perl libsys-hostname-long-perl libsys-sigaction-perl libregexp-common-net-cidr-perl libmime-tools-perl libdbd-sqlite3-perl binutils build-essential libfilesys-df-perl zlib1g unzip mlocate clamav libdbd-mysql-perl unrar libclamav-dev libclamav-client-perl libclamunrar9 + apt-get install -y cpanminus gcc perl bzip2 zip make patch automake rpm libarchive-zip-perl libfilesys-df-perl libole-storage-lite-perl libsys-hostname-long-perl libsys-sigaction-perl libregexp-common-net-cidr-perl libmime-tools-perl libdbd-sqlite3-perl binutils build-essential libfilesys-df-perl zlib1g unzip mlocate clamav libdbd-mysql-perl unrar libclamav-dev libclamav-client-perl libclamunrar9 cpanm Encoding::FixLatin cpanm Digest::SHA1 @@ -198,19 +199,23 @@ IPADDRESS=$(cat /etc/cyberpanel/machineIP) echo 'Setting up spamassassin and sieve to deliver spam to Junk folder by default' #echo "If you wish mailscanner/spamassassin to send spam email to a spam folder please follow the tutorial on the Cyberpanel Website" echo 'Fix protocols' -sed -i 's/^protocols =.*/protocols = imap pop3 sieve/g' /etc/dovecot/dovecot.conf +sed -i 's/^protocols =.*/protocols = imap pop3 lmtp sieve/g' /etc/dovecot/dovecot.conf sed -i "s|^user_query.*|user_query = SELECT '5000' as uid, '5000' as gid, '/home/vmail/%d/%n' as home,mail FROM e_users WHERE email='%u';|g" /etc/dovecot/dovecot-sql.conf.ext if [ "$OS" = "NAME=\"Ubuntu\"" ];then - - apt-get install -y dovecot-managesieved dovecot-sieve net-tools pflogsumm +if [ "$VERSION" = "VERSION_ID=\"18.04\"" ];then + apt-get install -y dovecot-managesieved dovecot-sieve dovecot-lmtpd net-tools pflogsumm +elif [ "$VERSION" = "VERSION_ID=\"20.04\"" ];then + apt-get install -y libmysqlclient-dev + sed -e '/deb/ s/^#*/#/' -i /etc/apt/sources.list.d/dovecot.list + apt install -y dovecot-lmtpd dovecot-managesieved dovecot-sieve net-tools pflogsumm +fi elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then - yum install -y nano net-tools dovecot-pigeonhole postfix-perl-scripts - + yum install -y nano net-tools dovecot-pigeonhole postfix-perl-scripts fi @@ -276,6 +281,7 @@ postmaster_address=$(grep postmaster_address /etc/dovecot/dovecot.conf | sed 's sed -i "s|postmaster@example.com|$postmaster_address|g" /etc/dovecot/dovecot.conf sed -i "s|server.example.com|$hostname|g" /etc/dovecot/dovecot.conf +sed -i "s|postmaster@example.com|$postmaster_address|g" /etc/dovecot/dovecot.conf #Sieve the global spam filter sievec /etc/dovecot/sieve/default.sieve From 84beb8eb695cb832563ade62a8254c596014a441 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:17:25 +0100 Subject: [PATCH 187/240] Update dockerInstall.py centos8 --- dockerManager/dockerInstall.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dockerManager/dockerInstall.py b/dockerManager/dockerInstall.py index 8b5220169..83589ad27 100755 --- a/dockerManager/dockerInstall.py +++ b/dockerManager/dockerInstall.py @@ -18,7 +18,9 @@ class DockerInstall: logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, "Starting Docker Installation..\n", 1) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.cent8: + command = 'sudo dnf install -y docker-ce --nobest' + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: command = 'sudo yum install -y docker' else: command = 'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io' From d1301168a2d23d8f3a4cf5cd31f5234043459351 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:20:17 +0100 Subject: [PATCH 188/240] Update applicationInstaller.py centos8 --- plogical/applicationInstaller.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plogical/applicationInstaller.py b/plogical/applicationInstaller.py index c4e26a75b..6a438fd43 100755 --- a/plogical/applicationInstaller.py +++ b/plogical/applicationInstaller.py @@ -82,7 +82,7 @@ class ApplicationInstaller(multi.Thread): f.write(ProcessUtilities.outputExecutioner(command)) f.close() - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: if package == 'all': command = 'yum update -y' f.write(ProcessUtilities.outputExecutioner(command)) @@ -414,7 +414,7 @@ class ApplicationInstaller(multi.Thread): homeDir = "/home/" + domainName + "/public_html" - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -590,7 +590,7 @@ class ApplicationInstaller(multi.Thread): homeDir = "/home/" + domainName + "/public_html" - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -750,7 +750,7 @@ class ApplicationInstaller(multi.Thread): shutil.rmtree(finalPath + "installation") - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -776,7 +776,7 @@ class ApplicationInstaller(multi.Thread): homeDir = "/home/" + domainName + "/public_html" - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -964,7 +964,7 @@ class ApplicationInstaller(multi.Thread): homeDir = "/home/" + domainName + "/public_html" - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' From 8e9a723d4282f716cd5fac1d83aebd8b7f853ad9 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:22:37 +0100 Subject: [PATCH 189/240] Update cronUtil.py centos 8 --- plogical/cronUtil.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plogical/cronUtil.py b/plogical/cronUtil.py index 120f6c06a..25f49e12c 100755 --- a/plogical/cronUtil.py +++ b/plogical/cronUtil.py @@ -9,7 +9,7 @@ class CronUtil: def getWebsiteCron(externalApp): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + externalApp else: cronPath = "/var/spool/cron/crontabs/" + externalApp @@ -29,7 +29,7 @@ class CronUtil: try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + externalApp else: cronPath = "/var/spool/cron/crontabs/" + externalApp @@ -51,7 +51,7 @@ class CronUtil: try: line -= 1 - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + externalApp else: cronPath = "/var/spool/cron/crontabs/" + externalApp @@ -81,7 +81,7 @@ class CronUtil: @staticmethod def addNewCron(externalApp, finalCron): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + externalApp else: cronPath = "/var/spool/cron/crontabs/" + externalApp From f261b1f506d45ae0243aa425e0b70c3c3a419602 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:23:55 +0100 Subject: [PATCH 190/240] Update csf.py centos 8 --- plogical/csf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/csf.py b/plogical/csf.py index 7b2bee78e..cb4a1d9f7 100755 --- a/plogical/csf.py +++ b/plogical/csf.py @@ -70,7 +70,7 @@ class CSF(multi.Thread): ProcessUtilities.normalExecutioner(command) # install required packages for CSF perl and /usr/bin/host - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -y' ProcessUtilities.normalExecutioner(command) elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: From 55ad650db92b581262dfb225dde5606493a0474b Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:26:15 +0100 Subject: [PATCH 191/240] Update firewallUtilities.py centos 8 --- plogical/firewallUtilities.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/firewallUtilities.py b/plogical/firewallUtilities.py index f47b74205..db945d2f6 100755 --- a/plogical/firewallUtilities.py +++ b/plogical/firewallUtilities.py @@ -17,7 +17,7 @@ class FirewallUtilities: def resFailed(res): if (ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20) and res != 0: return True - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos and res == 1: + elif (ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8) and res == 1: return True return False From fa9e92f4b43875af8aad095ed6cef9ece9fb0808 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:29:22 +0100 Subject: [PATCH 192/240] Update mailUtilities.py centos 8 --- plogical/mailUtilities.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index ca17dc3ed..812b5317a 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -225,7 +225,7 @@ class mailUtilities: ## Generate keys - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = "/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % (virtualHostName, virtualHostName) else: command = "opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % ( @@ -449,7 +449,7 @@ milter_default_action = accept def installSpamAssassin(install, SpamAssassin): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo yum install spamassassin -y' else: command = 'sudo apt-get install spamassassin spamc -y' From c60d2370bbbc88fbe22ee0a99a2a8f3c21b90f72 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:31:07 +0100 Subject: [PATCH 193/240] Update modSec.py centos 8 --- plogical/modSec.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/modSec.py b/plogical/modSec.py index 6c4e86c6f..e242d4035 100755 --- a/plogical/modSec.py +++ b/plogical/modSec.py @@ -24,7 +24,7 @@ class modSec: mailUtilities.checkHome() - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo yum install ols-modsecurity -y' else: command = 'sudo DEBIAN_FRONTEND=noninteractive apt-get install ols-modsecurity -y' From 0d8b3729b5616d7c2679d648d395281d4276de48 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:32:18 +0100 Subject: [PATCH 194/240] Update mysqlUtilities.py centos 8 --- plogical/mysqlUtilities.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plogical/mysqlUtilities.py b/plogical/mysqlUtilities.py index fa06f8fac..bb17f36e7 100755 --- a/plogical/mysqlUtilities.py +++ b/plogical/mysqlUtilities.py @@ -413,7 +413,7 @@ password=%s def applyMySQLChanges(data): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo mv /etc/my.cnf /etc/my.cnf.bak' else: command = 'sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak' @@ -430,7 +430,7 @@ password=%s writeToFile.close() ## - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo mv ' + tempPath + ' /etc/my.cnf' else: command = 'sudo mv ' + tempPath + ' /etc/mysql/my.cnf' @@ -440,7 +440,7 @@ password=%s return 1, None except BaseException as msg: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo mv /etc/my.cnf.bak /etc/my.cnf' else: command = 'sudo mv /etc/mysql/my.cnf.bak /etc/mysql//my.cnf' From 2625d5f27b9734610f934ba1a4e02ddc2022edb9 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:34:08 +0100 Subject: [PATCH 195/240] Update phpUtilities.py centos 8 --- plogical/phpUtilities.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plogical/phpUtilities.py b/plogical/phpUtilities.py index e1518a7d9..8e69569ef 100755 --- a/plogical/phpUtilities.py +++ b/plogical/phpUtilities.py @@ -20,7 +20,7 @@ class phpUtilities: mailUtilities.checkHome() - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo yum install ' + extension + ' -y' else: command = 'sudo apt-get install ' + extension + ' -y' @@ -54,7 +54,7 @@ class phpUtilities: mailUtilities.checkHome() - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo rpm --nodeps -e ' + extension + ' -v' else: command = 'sudo apt-get remove -y ' + extension @@ -103,7 +103,7 @@ class phpUtilities: command = 'touch %s' % (serverLevelPHPRestart) ProcessUtilities.executioner(command) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini" else: initial = phpVers[3] From 50ee7d825a13f5cc221e23e7f794c13100d547cc Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:38:37 +0100 Subject: [PATCH 196/240] Update vhost.py centos 8 --- plogical/vhost.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plogical/vhost.py b/plogical/vhost.py index 8d8eef190..556dc5960 100755 --- a/plogical/vhost.py +++ b/plogical/vhost.py @@ -91,7 +91,7 @@ class vhost: try: os.makedirs(pathHTML) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities. or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -112,7 +112,7 @@ class vhost: try: os.makedirs(pathLogs) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' @@ -403,7 +403,7 @@ class vhost: ## - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'userdel -r -f %s' % (externalApp) else: command = 'deluser %s' % (externalApp) @@ -468,7 +468,7 @@ class vhost: ## - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'userdel -r -f %s' % (externalApp) else: command = 'deluser %s' % (externalApp) @@ -848,7 +848,7 @@ class vhost: try: os.makedirs(path) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' From 2034311e155f68a1fa0e5cfb48ab75781c8fb070 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:46:21 +0100 Subject: [PATCH 197/240] Update views.py centos 8 --- managePHP/views.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/managePHP/views.py b/managePHP/views.py index 4ef3a6ecc..887719155 100755 --- a/managePHP/views.py +++ b/managePHP/views.py @@ -1085,7 +1085,7 @@ def installExtensions(request): phpPath = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8 phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php70.xml') else: phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp70.xml') @@ -1116,7 +1116,7 @@ def installExtensions(request): phpPath = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php71.xml') else: phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp71.xml') @@ -1144,7 +1144,7 @@ def installExtensions(request): php72Path = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: php72Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php72.xml') else: php72Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp72.xml') @@ -1172,7 +1172,7 @@ def installExtensions(request): php73Path = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: php73Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php73.xml') else: php73Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp73.xml') @@ -1200,7 +1200,7 @@ def installExtensions(request): php74Path = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: php74Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php74.xml') else: php74Path = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp74.xml') @@ -1344,7 +1344,7 @@ def getRequestStatus(request): checkCommand = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: checkCommand = 'yum list installed' checkCommand = shlex.split(checkCommand) else: @@ -1469,7 +1469,7 @@ def getRequestStatusApache(request): checkCommand = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: checkCommand = 'yum list installed' checkCommand = shlex.split(checkCommand) else: @@ -1607,7 +1607,7 @@ def getCurrentPHPConfig(request): phpVers = "php" + PHPManager.getPHPString(phpVers) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini" else: initial = phpVers[3] @@ -1767,7 +1767,7 @@ def getCurrentAdvancedPHPConfig(request): phpVers = "php" + PHPManager.getPHPString(phpVers) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini" else: initial = phpVers[3] @@ -1809,7 +1809,7 @@ def savePHPConfigAdvance(request): phpVers = "php" + PHPManager.getPHPString(phpVers) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini" else: initial = phpVers[3] From 95350179b11773ec1f539132f82335160c48728b Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:51:14 +0100 Subject: [PATCH 198/240] Update cloudManager.py centos 8 --- cloudAPI/cloudManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudAPI/cloudManager.py b/cloudAPI/cloudManager.py index d6c9058de..ffab613c2 100755 --- a/cloudAPI/cloudManager.py +++ b/cloudAPI/cloudManager.py @@ -1080,7 +1080,7 @@ class CloudManager: finalData['ramInGB'] = inGB - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: finalData['conf'] = ProcessUtilities.outputExecutioner('sudo cat /etc/my.cnf') else: finalData['conf'] = ProcessUtilities.outputExecutioner('sudo cat /etc/mysql/my.cnf') From 30b874726077f6a563f62ee4d0ef90c21155e958 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 10:59:01 +0100 Subject: [PATCH 199/240] Update haManager.py centos 8 --- highAvailability/haManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highAvailability/haManager.py b/highAvailability/haManager.py index 077ada262..dcda19b6d 100755 --- a/highAvailability/haManager.py +++ b/highAvailability/haManager.py @@ -36,7 +36,7 @@ class HAManager(multi.Thread): def setupNode(self): try: - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: mesg = 'Clusters are only supported on Ubuntu 18.04. [404]' logging.statusWriter(self.data['tempStatusPath'], mesg) return 0 From 2fa71aef7914e1b9cb5c8ae3e4a7d20c882206df Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 11:02:56 +0100 Subject: [PATCH 200/240] Update pure-ftpd.conf centos 8 --- install/pure-ftpd/pure-ftpd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/pure-ftpd/pure-ftpd.conf b/install/pure-ftpd/pure-ftpd.conf index 1c0af0529..299252b61 100755 --- a/install/pure-ftpd/pure-ftpd.conf +++ b/install/pure-ftpd/pure-ftpd.conf @@ -18,7 +18,7 @@ MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 1000 -UseFtpUsers no +#UseFtpUsers no AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no From f6d69e003f6cb20b355dcd46a1309a0386a7d767 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 11:10:01 +0100 Subject: [PATCH 201/240] Update views.py centos 8 --- serverLogs/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverLogs/views.py b/serverLogs/views.py index b2f1a738b..553e1382d 100755 --- a/serverLogs/views.py +++ b/serverLogs/views.py @@ -131,12 +131,12 @@ def getLogsFromFile(request): elif type == "error": fileName = installUtilities.Server_root_path + "/logs/error.log" elif type == "email": - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: fileName = "/var/log/maillog" else: fileName = "/var/log/mail.log" elif type == "ftp": - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: fileName = "/var/log/messages" else: fileName = "/var/log/syslog" From 479152e3776f99f92567ca07a5369635b3bebd8b Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 11:11:55 +0100 Subject: [PATCH 202/240] Update views.py centos 8 --- serverStatus/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serverStatus/views.py b/serverStatus/views.py index 60e7bc850..1ec698044 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -748,7 +748,7 @@ def fetchPackages(request): packages = upgradePackages - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: ### Check Package Lock status @@ -888,7 +888,7 @@ def fetchPackages(request): json_data = json_data + ',' + json.dumps(dic) except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile('[ERROR] %s. [fetchPackages:773]' % (str(msg))) - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: try: if type == 'installed' or type == 'upgrade': @@ -973,7 +973,7 @@ def fetchPackageDetails(request): if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu or ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu20: command = 'apt-cache show %s' % (package) packageDetails = ProcessUtilities.outputExecutioner(command) - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'yum info %s' % (package) packageDetails = ProcessUtilities.outputExecutioner(command) @@ -1049,7 +1049,7 @@ def lockStatus(request): command = 'apt-mark hold %s' % (package) ProcessUtilities.executioner(command) - elif ProcessUtilities.decideDistro() == ProcessUtilities.centos: + elif ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: package = package.split('.')[0] From fa84f29e9747f6f5da563102432b0d320afa9f5c Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 11:14:35 +0100 Subject: [PATCH 203/240] Update website.py centos 8 --- websiteFunctions/website.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 67d26aeb8..f4ee953e0 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -1367,7 +1367,7 @@ class WebsiteManager: CronUtil.CronPrem(0) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + website.externalApp else: cronPath = "/var/spool/cron/crontabs/" + website.externalApp @@ -1586,7 +1586,7 @@ class WebsiteManager: website = Websites.objects.get(domain=self.domain) - if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: cronPath = "/var/spool/cron/" + website.externalApp else: cronPath = "/var/spool/cron/crontabs/" + website.externalApp From ae671ec04d25a9ab34eec830a21a752b662e36e5 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Sun, 24 May 2020 13:26:01 +0100 Subject: [PATCH 204/240] Update mailscannerinstaller.sh Centos 8 --- CPScripts/mailscannerinstaller.sh | 55 ++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 39288c5a1..f91acaa7c 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -27,17 +27,17 @@ fi if [ -f /etc/os-release ];then OS=$(head -1 /etc/os-release) -VERSION=$(sed '6q;d' /etc/os-release) +UBUNTUVERSION=$(sed '6q;d' /etc/os-release) +CENTOSVERSION=$(sed '5q;d' /etc/os-release) fi -if [ "$OS" = "NAME=\"CentOS Linux\"" ];then +if [ "$CENTOSVERSION" = "VERSION_ID=\"7\"" ];then setenforce 0 - -yum install -y yum-utils perl-CPAN gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive-Zip perl-Filesys-Df perl-OLE-Storage_Lite perl-Sys-Hostname-Long perl-Sys-SigAction perl-Net-CIDR perl-DBI perl-MIME-tools perl-DBD-SQLite binutils glibc-devel perl-Filesys-Df zlib unzip zlib-devel wget mlocate clamav "perl(DBD::mysql)" +yum install -y perl yum-utils perl-CPAN +yum install -y gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive-Zip perl-Filesys-Df perl-OLE-Storage_Lite perl-Sys-Hostname-Long perl-Sys-SigAction perl-Net-CIDR perl-DBI perl-MIME-tools perl-DBD-SQLite binutils glibc-devel perl-Filesys-Df zlib unzip zlib-devel wget mlocate clamav "perl(DBD::mysql)" rpm -Uvh https://forensics.cert.org/centos/cert/7/x86_64/unrar-5.4.0-1.el7.x86_64.rpm - export PERL_MM_USE_DEFAULT=1 curl -L https://cpanmin.us | perl - App::cpanminus cpanm Encoding::FixLatin @@ -46,6 +46,37 @@ cpanm Geo::IP cpanm Razor2::Client::Agent cpanm Net::Patricia +freshclam -v +DIR=/etc/mail/spamassassin + +if [ -d "$DIR" ]; then +sa-update + +else + +echo "Please install spamassassin through the CyberPanel interface before proceeding" + +exit +fi + +elif [ "$CENTOSVERSION" = "VERSION_ID=\"8\"" ];then + +setenforce 0 +yum install -y perl yum-utils perl-CPAN +dnf --enablerepo=PowerTools install -y perl-IO-stringy +yum install -y gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive-Zip perl-Filesys-Df perl-OLE-Storage_Lite perl-Net-CIDR perl-DBI perl-MIME-tools perl-DBD-SQLite binutils glibc-devel perl-Filesys-Df zlib unzip zlib-devel wget mlocate clamav clamav-update "perl(DBD::mysql)" + +rpm -Uvh https://forensics.cert.org/centos/cert/8/x86_64/unrar-5.4.0-1.el8.x86_64.rpm + +export PERL_MM_USE_DEFAULT=1 +curl -L https://cpanmin.us | perl - App::cpanminus +cpanm Encoding::FixLatin +cpanm Digest::SHA1 +cpanm Geo::IP +cpanm Razor2::Client::Agent +cpanm Sys::Hostname::Long +cpanm Sys::SigAction + freshclam -v DIR=/etc/mail/spamassassin @@ -205,17 +236,25 @@ sed -i 's/^protocols =.*/protocols = imap pop3 lmtp sieve/g' /etc/dovecot/doveco sed -i "s|^user_query.*|user_query = SELECT '5000' as uid, '5000' as gid, '/home/vmail/%d/%n' as home,mail FROM e_users WHERE email='%u';|g" /etc/dovecot/dovecot-sql.conf.ext if [ "$OS" = "NAME=\"Ubuntu\"" ];then -if [ "$VERSION" = "VERSION_ID=\"18.04\"" ];then +if [ "$UBUNTUVERSION" = "VERSION_ID=\"18.04\"" ];then apt-get install -y dovecot-managesieved dovecot-sieve dovecot-lmtpd net-tools pflogsumm -elif [ "$VERSION" = "VERSION_ID=\"20.04\"" ];then +elif [ "$UBUNTUVERSION" = "VERSION_ID=\"20.04\"" ];then apt-get install -y libmysqlclient-dev sed -e '/deb/ s/^#*/#/' -i /etc/apt/sources.list.d/dovecot.list apt install -y dovecot-lmtpd dovecot-managesieved dovecot-sieve net-tools pflogsumm fi -elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then +elif [ "$CENTOSVERSION" = "VERSION_ID=\"7\"" ];then yum install -y nano net-tools dovecot-pigeonhole postfix-perl-scripts + +elif [ "$CENTOSVERSION" = "VERSION_ID=\"8\"" ];then + + rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/el/8/gf/x86_64/gf-release-8-11.gf.el8.noarch.rpm + dnf --enablerepo=gf-plus upgrade -y dovecot23* + dnf --enablerepo=gf-plus install -y dovecot23-pigeonhole + dnf install -y net-tools postfix-perl-scripts + fi From 183e55bdebe78193049e64c60b8dafaa7c2e0cd5 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 24 May 2020 22:43:58 +0500 Subject: [PATCH 205/240] bug fix: plogical/vhost.py --- plogical/backupSchedule.py | 1 - plogical/vhost.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 0227aed6d..3093a54fa 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -87,7 +87,6 @@ class backupSchedule: if os.path.exists(status): status = open(status, 'r').read() - print(status) time.sleep(2) if status.find("Completed") > -1: diff --git a/plogical/vhost.py b/plogical/vhost.py index 556dc5960..6e353096d 100755 --- a/plogical/vhost.py +++ b/plogical/vhost.py @@ -91,7 +91,7 @@ class vhost: try: os.makedirs(pathHTML) - if ProcessUtilities.decideDistro() == ProcessUtilities. or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: groupName = 'nobody' else: groupName = 'nogroup' From 74ac832a44e7a35307671b90170991df9fb32e67 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 24 May 2020 22:52:48 +0500 Subject: [PATCH 206/240] bug fix: managePHP/views.py --- managePHP/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/managePHP/views.py b/managePHP/views.py index 887719155..62e9d0f26 100755 --- a/managePHP/views.py +++ b/managePHP/views.py @@ -1085,7 +1085,7 @@ def installExtensions(request): phpPath = '' - if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8 + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'php70.xml') else: phpPath = os.path.join('/usr', 'local', 'CyberCP', 'managePHP', 'ubuntuphp70.xml') From c44e29b159347bee9d03015370dd7a49c6d2a3fb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 24 May 2020 23:35:08 +0500 Subject: [PATCH 207/240] bug fix backupSchedule.py --- plogical/backupSchedule.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 3093a54fa..a2ebcdf01 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -83,6 +83,13 @@ class backupSchedule: except: fileName = "Fetching.." + ifRunning = ProcessUtilities.outputExecutioner('ps aux') + + if (ifRunning.find('startBackup') > -1 or ifRunning.find('BackupRoot') > -1) and ifRunning.find('/%s/' % (backupDomain)): + pass + else: + return 0, 'Backup process killed without reporting any error.' + ## file name read ends if os.path.exists(status): From bcfd769306f13296cacf02aa9c862789453d422c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 25 May 2020 00:08:05 +0500 Subject: [PATCH 208/240] bug fix backupSchedule.py --- plogical/backupSchedule.py | 30 +++++++++++++++++++++++++++++- plogical/backupScheduleLocal.py | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index a2ebcdf01..46f531eab 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -88,7 +88,35 @@ class backupSchedule: if (ifRunning.find('startBackup') > -1 or ifRunning.find('BackupRoot') > -1) and ifRunning.find('/%s/' % (backupDomain)): pass else: - return 0, 'Backup process killed without reporting any error.' + if os.path.exists(status): + + status = open(status, 'r').read() + time.sleep(2) + + if status.find("Completed") > -1: + + ### Removing Files + + command = 'sudo rm -f ' + status + ProcessUtilities.normalExecutioner(command) + + command = 'sudo rm -f ' + backupFileNamePath + ProcessUtilities.normalExecutioner(command) + + command = 'sudo rm -f ' + pid + ProcessUtilities.normalExecutioner(command) + + backupSchedule.remoteBackupLogging(backupLogPath, "Backup Completed for: " + virtualHost) + try: + os.remove(pathToFile) + except: + pass + return 1, tempStoragePath + else: + return 0, 'Backup process killed without reporting any error.' + else: + + return 0, 'Backup process killed without reporting any error.' ## file name read ends diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index 3a69f20fa..6065b9c92 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -61,6 +61,7 @@ class backupScheduleLocal: retValues = backupSchedule.createLocalBackup(virtualHost, backupLogPath) if retValues[0] == 0: + backupSchedule.remoteBackupLogging(backupLogPath, '[ERROR] Backup failed for %s, error: %s moving on..' % (virtualHost, retValues[1]), backupSchedule.ERROR) continue if os.path.exists(backupScheduleLocal.localBackupPath): From a88b999f37508f8004455d9762ac60ffda8128f8 Mon Sep 17 00:00:00 2001 From: Linunaut Date: Tue, 26 May 2020 08:47:43 +0200 Subject: [PATCH 209/240] German Translation Fix Updated German Translation --- locale/de/LC_MESSAGES/django.mo | Bin 93411 -> 93412 bytes locale/de/LC_MESSAGES/django.po | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 582c894943f4cf516d7fa33cd4148e6762fdb8dc..7e87d0a8c9ba01996f98ef32fd361981ccf4204f 100644 GIT binary patch delta 10013 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�%-Czob!0qsNqRpv*^$Y9YF|kH!8qt7qL3iuMb zTh^lQy%v3cb?MMo?#}3%+qodSbElr2daSOwEi1LU)%F2Jnb#(z!_Fx#8JT^?EiSIucgD4A*=lWS{1-yx?vVfh diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index e72bb03e4..879f60b6f 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: CyberPanel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-21 19:54+0500\n" -"PO-Revision-Date: 2020-04-28 21:19+0200\n" +"PO-Revision-Date: 2020-05-26 08:47+0200\n" "Last-Translator: Linunaut \n" "Language-Team: Linunaut \n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 2.3.1\n" #: CLManager/templates/CLManager/createPackage.html:3 msgid "Create Cloud Linux Package - CyberPanel" @@ -102,12 +102,12 @@ msgstr "NPROC" #: CLManager/templates/CLManager/createPackage.html:105 #: CLManager/templates/CLManager/listPackages.html:164 msgid "INODES soft" -msgstr "INODES weich" +msgstr "INODES soft" #: CLManager/templates/CLManager/createPackage.html:113 #: CLManager/templates/CLManager/listPackages.html:175 msgid "INODES hard" -msgstr "INODES hart" +msgstr "INODES hard" #: CLManager/templates/CLManager/listPackages.html:3 msgid "Manage CloudLinux Packages - CyberPanel" @@ -533,7 +533,7 @@ msgstr "Snapshot ID" #: dns/templates/dns/addDeleteDNSRecords.html:327 #: pluginHolder/templates/pluginHolder/plugins.html:29 msgid "Type" -msgstr "Art" +msgstr "Typ" #: IncBackups/templates/IncBackups/createBackup.html:165 #: websiteFunctions/templates/websiteFunctions/listCron.html:52 From 6b8585ce60a7419533a01a2b024a4c2c05ec52fb Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 26 May 2020 16:11:35 +0500 Subject: [PATCH 210/240] bug fix: create query; --- plogical/upgrade.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/upgrade.py b/plogical/upgrade.py index d88edd44f..9434f3303 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1238,7 +1238,7 @@ class Upgrade: except: pass - qeury = """CREATE TABLE `websiteFunctions_backupjob` ( + query = """CREATE TABLE `websiteFunctions_backupjob` ( `id` int(11) NOT NULL AUTO_INCREMENT, `logFile` varchar(1000) NOT NULL, `ipAddress` varchar(50) NOT NULL, From 7cdc35f90c577a5899ad16f95c6b6bf06e805704 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 26 May 2020 17:32:52 +0500 Subject: [PATCH 211/240] bug fix: cent8: package manager --- serverStatus/views.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/serverStatus/views.py b/serverStatus/views.py index 1ec698044..c28cce9b7 100755 --- a/serverStatus/views.py +++ b/serverStatus/views.py @@ -1058,12 +1058,13 @@ def lockStatus(request): elif os.path.exists('/etc/yum/yum.conf'): yumConf = '/etc/yum/yum.conf' - yumConfData = open(yumConf, 'r').read() - data = open(yumConf, 'r').readlines() + yumConfData = ProcessUtilities.outputExecutioner('cat %s' % (yumConf)) + data = yumConfData.splitlines() + yumConfTmp = '/home/cyberpanel/yumTemp' if type == 0: - writeToFile = open(yumConf, 'w') + writeToFile = open(yumConfTmp, 'w') for items in data: if items.find('exclude') > -1: @@ -1076,12 +1077,12 @@ def lockStatus(request): if yumConfData.find('exclude') == -1: - writeToFile = open(yumConf, 'a') + writeToFile = open(yumConfTmp, 'a') writeToFile.writelines('exclude=%s\n' % (package)) writeToFile.close() else: - writeToFile = open(yumConf, 'w') + writeToFile = open(yumConfTmp, 'w') for items in data: if items.find('exclude') > -1: @@ -1092,6 +1093,9 @@ def lockStatus(request): writeToFile.close() + command = 'mv %s %s' % (yumConfTmp, yumConf) + ProcessUtilities.executioner(command) + data_ret = {'status': 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) From 44ac1fe0066ae6b8e9cb4d07bdc1d08c77cf553c Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Wed, 27 May 2020 22:45:49 +0500 Subject: [PATCH 212/240] UseFtpUsers --- install/pure-ftpd-one/pure-ftpd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/pure-ftpd-one/pure-ftpd.conf b/install/pure-ftpd-one/pure-ftpd.conf index 1c0af0529..299252b61 100755 --- a/install/pure-ftpd-one/pure-ftpd.conf +++ b/install/pure-ftpd-one/pure-ftpd.conf @@ -18,7 +18,7 @@ MaxLoad 4 AntiWarez yes Umask 133:022 MinUID 1000 -UseFtpUsers no +#UseFtpUsers no AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no From 195518e61eaa6c134628958905f3e8d7aab1c90f Mon Sep 17 00:00:00 2001 From: hennaboy Date: Wed, 27 May 2020 19:15:49 +0100 Subject: [PATCH 213/240] Update mailscannerinstaller.sh update for mailscanner change of build --- CPScripts/mailscannerinstaller.sh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index f91acaa7c..274ccd919 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -127,13 +127,8 @@ echo "/^Received:/ HOLD" >> /etc/postfix/header_checks systemctl restart postfix -wget https://github.com/MailScanner/v5/archive/master.zip -unzip master.zip - -cd /usr/local/CyberCP/CPScripts/v5-master/builds - if [ "$OS" = "NAME=\"Ubuntu\"" ];then - +wget https://github.com/MailScanner/v5/releases/download/5.3.3-1/MailScanner-5.3.3-1.noarch.deb dpkg -i *.noarch.deb mkdir /var/run/MailScanner @@ -144,7 +139,7 @@ chown -R postfix:postfix /var/lock/subsys/MailScanner chown -R postfix:postfix /var/spool/MailScanner elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then - +https://github.com/MailScanner/v5/releases/download/5.3.3-1/MailScanner-5.3.3-1.rhel.noarch.rpm rpm -Uvh *.rhel.noarch.rpm fi From 7fe18a44612067ff34945d8b1b58b3c70f9faf55 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 13:30:25 +0500 Subject: [PATCH 214/240] add mailscanner page --- .../templates/baseTemplate/index.html | 19 +--- baseTemplate/urls.py | 2 - .../templates/emailPremium/MailScanner.html | 106 ++++++++++++++++++ emailPremium/urls.py | 1 + emailPremium/views.py | 24 +++- plogical/mailUtilities.py | 16 +++ 6 files changed, 150 insertions(+), 18 deletions(-) create mode 100755 emailPremium/templates/emailPremium/MailScanner.html diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index 7b1c21a37..b5c4726d2 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -60,7 +60,6 @@ } - {% block title %}Page Title{% endblock %} @@ -73,20 +72,7 @@ - - - - - - - - - - - - - - + @@ -877,6 +863,9 @@ +
  • {% trans "MailScanner" %} +
  • {% trans "Email Marketing" %}
  • diff --git a/baseTemplate/urls.py b/baseTemplate/urls.py index 31a0ed8c5..b904ed09b 100755 --- a/baseTemplate/urls.py +++ b/baseTemplate/urls.py @@ -13,6 +13,4 @@ urlpatterns = [ url(r'^UpgradeStatus',views.upgradeStatus, name='UpgradeStatus'), url(r'^upgradeVersion',views.upgradeVersion, name='upgradeVersion'), - - ] \ No newline at end of file diff --git a/emailPremium/templates/emailPremium/MailScanner.html b/emailPremium/templates/emailPremium/MailScanner.html new file mode 100755 index 000000000..5812b68e9 --- /dev/null +++ b/emailPremium/templates/emailPremium/MailScanner.html @@ -0,0 +1,106 @@ +{% extends "baseTemplate/index.html" %} +{% load i18n %} +{% block title %}{% trans "MailScanner - CyberPanel" %}{% endblock %} +{% block content %} + + {% load static %} + {% get_current_language as LANGUAGE_CODE %} + + + +
    +
    +

    {% trans "MailScanner" %}

    +

    {% trans "Install/Access MailScanner" %}

    +
    + +
    +
    +

    + {% trans "SpamAssassin" %} +

    + +
    +
    + + {% if checkIfMailScannerInstalled == 0 %} + +
    +

    {% trans "MailScanner is not installed " %} +

    + +
    + + + +
    + +
    + +
    +

    {% trans "Failed to start installation, Error message: " %} {$ errorMessage + $}

    +
    + +
    +

    {% trans "Could not connect. Please refresh this page." %}

    +
    + +
    +

    {% trans "Installation failed." %} {$ errorMessage $}

    +
    + +
    +

    {% trans "SpamAssassin successfully installed, refreshing page in 3 seconds.." %}

    +
    +
    +
    + + +
    + +
    +
    +
    +

    {% trans "Winter is coming, but so is SpamAssassin." %} + +

    +
    +
    + +
    +
    +
    +
    + + + + {% else %} + +
    +

    {% trans "MailScanner is not installed " %} +

    + +
    + + {% endif %} + + +
    +
    +
    +
    + + +
    + + +{% endblock %} diff --git a/emailPremium/urls.py b/emailPremium/urls.py index 50bff1050..f7d511b59 100755 --- a/emailPremium/urls.py +++ b/emailPremium/urls.py @@ -38,6 +38,7 @@ urlpatterns = [ url(r'^fetchMessage$', views.fetchMessage, name='fetchMessage'), url(r'^flushQueue$', views.flushQueue, name='flushQueue'), url(r'^delete$', views.delete, name='delete'), + url(r'^MailScanner$', views.MailScanner, name='MailScanner'), url(r'^(?P(.*))$', views.emailLimits, name='emailLimits'), diff --git a/emailPremium/views.py b/emailPremium/views.py index 54478c894..8a05c968c 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -1166,4 +1166,26 @@ def delete(request): except KeyError as msg: dic = {'status': 0, 'error_message': str(msg)} json_data = json.dumps(dic) - return HttpResponse(json_data) \ No newline at end of file + return HttpResponse(json_data) + +## MailScanner + +def MailScanner(request): + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadError() + + checkIfMailScannerInstalled = 0 + + if mailUtilities.checkIfMailScannerInstalled() == 1: + checkIfMailScannerInstalled = 1 + + return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled}) + + except KeyError: + return redirect(loadLoginPage) \ No newline at end of file diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 812b5317a..a635c71ba 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -666,6 +666,22 @@ milter_default_action = accept str(msg) + " [savePolicyServerStatus]") print("0," + str(msg)) + @staticmethod + def checkIfMailScannerInstalled(): + try: + + path = "/usr/local/CyberCP/public/mailscanner" + + if os .path.exists(path): + return 1 + else: + return 0 + + except BaseException as msg: + logging.CyberCPLogFileWriter.writeToFile( + str(msg) + " [checkIfMailScannerInstalled]") + return 0 + def main(): From 009969a0ea898b43540b2f5bc3a95f72427ab52a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 16:19:30 +0500 Subject: [PATCH 215/240] complete mailscanner --- .../templates/baseTemplate/index.html | 16 +- .../static/emailPremium/emailPremium.js | 285 +++++++++++++++++- .../templates/emailPremium/MailScanner.html | 13 +- emailPremium/urls.py | 1 + emailPremium/views.py | 36 ++- plogical/mailUtilities.py | 52 +++- static/emailPremium/emailPremium.js | 285 +++++++++++++++++- 7 files changed, 676 insertions(+), 12 deletions(-) diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index b5c4726d2..0b3236ded 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -60,6 +60,7 @@ } + {% block title %}Page Title{% endblock %} @@ -72,7 +73,20 @@ - + + + + + + + + + + + + + diff --git a/emailPremium/static/emailPremium/emailPremium.js b/emailPremium/static/emailPremium/emailPremium.js index 48f7109fc..9f580ac0b 100755 --- a/emailPremium/static/emailPremium/emailPremium.js +++ b/emailPremium/static/emailPremium/emailPremium.js @@ -1287,4 +1287,287 @@ app.controller('mailQueue', function($scope,$http) { }; }); -/* Java script code to manage mail queue ends here */ \ No newline at end of file +/* Java script code to manage mail queue ends here */ + +app.controller('MailScanner', function($scope, $http, $timeout, $window) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + + $scope.installSpamAssassin = function(){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installMailScanner"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.status === 1){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + getRequestStatus(); + + } + else{ + $scope.errorMessage = response.data.error_message; + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus(){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusSpamAssassin"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.abort === 0){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus,1000); + } + else{ + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if(response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + }else{ + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function() { $window.location.reload(); }, 3000); + } + + } + + } + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function() { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + function fetchSpamAssassinSettings(){ + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if(response.data.fetchStatus === 1){ + + if(response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); + } + + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; + + } + + } + + } + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } + + + ///// + + /// Save SpamAssassin Changes + + $scope.failedToSave = true; + $scope.successfullySaved = true; + + $scope.saveSpamAssassinConfigurations = function () { + + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + + + url = "/emailPremium/saveSpamAssassinConfigurations"; + + var data = { + report_safe:report_safe, + required_hits:$scope.required_hits, + rewrite_header:$scope.rewrite_header, + required_score:$scope.required_score + }; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.saveStatus === 1){ + + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + + } + else{ + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + + }; + +}); \ No newline at end of file diff --git a/emailPremium/templates/emailPremium/MailScanner.html b/emailPremium/templates/emailPremium/MailScanner.html index 5812b68e9..831b710e7 100755 --- a/emailPremium/templates/emailPremium/MailScanner.html +++ b/emailPremium/templates/emailPremium/MailScanner.html @@ -17,7 +17,7 @@

    - {% trans "SpamAssassin" %} + {% trans "MailScanner" %}

    @@ -66,7 +66,7 @@

    {% trans "Winter is coming, but so is SpamAssassin." %} + src="{% static 'firewall/icons/firewall.png' %}"> {% trans "Winter is coming, but so is MailScanner." %}

    @@ -83,12 +83,13 @@ {% else %}
    -

    {% trans "MailScanner is not installed " %} +

    {% trans "MailScanner is installed. " %}

    - +
    {% endif %} diff --git a/emailPremium/urls.py b/emailPremium/urls.py index f7d511b59..f4ebb2960 100755 --- a/emailPremium/urls.py +++ b/emailPremium/urls.py @@ -39,6 +39,7 @@ urlpatterns = [ url(r'^flushQueue$', views.flushQueue, name='flushQueue'), url(r'^delete$', views.delete, name='delete'), url(r'^MailScanner$', views.MailScanner, name='MailScanner'), + url(r'^installMailScanner$', views.installMailScanner, name='installMailScanner'), url(r'^(?P(.*))$', views.emailLimits, name='emailLimits'), diff --git a/emailPremium/views.py b/emailPremium/views.py index 8a05c968c..1bfdc9445 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -1182,10 +1182,42 @@ def MailScanner(request): checkIfMailScannerInstalled = 0 + ipFile = "/etc/cyberpanel/machineIP" + f = open(ipFile) + ipData = f.read() + ipAddress = ipData.split('\n', 1)[0] + if mailUtilities.checkIfMailScannerInstalled() == 1: checkIfMailScannerInstalled = 1 - return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled}) + + return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}) except KeyError: - return redirect(loadLoginPage) \ No newline at end of file + return redirect(loadLoginPage) + +def installMailScanner(request): + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadErrorJson() + try: + + execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/mailUtilities.py" + execPath = execPath + " installMailScanner" + ProcessUtilities.popenExecutioner(execPath) + + final_json = json.dumps({'status': 1, 'error_message': "None"}) + return HttpResponse(final_json) + except BaseException as msg: + final_dic = {'status': 0, 'error_message': str(msg)} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + except KeyError: + final_dic = {'status': 0, 'error_message': "Not Logged In, please refresh the page or login again."} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) \ No newline at end of file diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index a635c71ba..3424eccef 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -449,6 +449,9 @@ milter_default_action = accept def installSpamAssassin(install, SpamAssassin): try: + if os.path.exists(mailUtilities.spamassassinInstallLogPath): + os.remove(mailUtilities.spamassassinInstallLogPath) + if ProcessUtilities.decideDistro() == ProcessUtilities.centos or ProcessUtilities.decideDistro() == ProcessUtilities.cent8: command = 'sudo yum install spamassassin -y' else: @@ -477,6 +480,51 @@ milter_default_action = accept writeToFile.close() logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installSpamAssassin]") + @staticmethod + def installMailScanner(install, SpamAssassin): + try: + + if os.path.exists(mailUtilities.spamassassinInstallLogPath): + os.remove(mailUtilities.spamassassinInstallLogPath) + + if mailUtilities.checkIfSpamAssassinInstalled(): + + command = 'chmod +x /usr/local/CyberCP/CPScripts/mailscannerinstaller.sh' + ProcessUtilities.executioner(command) + + + command = '/usr/local/CyberCP/CPScripts/mailscannerinstaller.sh' + + cmd = shlex.split(command) + + with open(mailUtilities.spamassassinInstallLogPath, 'w') as f: + res = subprocess.call(cmd, stdout=f) + + if res == 1: + writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile.writelines("Can not be installed.[404]\n") + writeToFile.close() + logging.CyberCPLogFileWriter.writeToFile("[Could not Install MailScanner.]") + return 0 + else: + writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile.writelines("MailScanner Installed.[200]\n") + writeToFile.close() + + return 1 + else: + writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile.writelines("Please install SpamAssassin from CyberPanel before installing MailScanner.[404]\n") + writeToFile.close() + + + + except BaseException as msg: + writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile.writelines("Can not be installed.[404]\n") + writeToFile.close() + logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installSpamAssassin]") + @staticmethod def checkIfSpamAssassinInstalled(): try: @@ -670,7 +718,7 @@ milter_default_action = accept def checkIfMailScannerInstalled(): try: - path = "/usr/local/CyberCP/public/mailscanner" + path = "/usr/local/CyberCP/public/mailwatch" if os .path.exists(path): return 1 @@ -711,6 +759,8 @@ def main(): mailUtilities.savePolicyServerStatus(args.install) elif args.function == 'installSpamAssassin': mailUtilities.installSpamAssassin("install", "SpamAssassin") + elif args.function == 'installMailScanner': + mailUtilities.installMailScanner("install", "installMailScanner") elif args.function == 'AfterEffects': mailUtilities.AfterEffects(args.domain) diff --git a/static/emailPremium/emailPremium.js b/static/emailPremium/emailPremium.js index 48f7109fc..9f580ac0b 100644 --- a/static/emailPremium/emailPremium.js +++ b/static/emailPremium/emailPremium.js @@ -1287,4 +1287,287 @@ app.controller('mailQueue', function($scope,$http) { }; }); -/* Java script code to manage mail queue ends here */ \ No newline at end of file +/* Java script code to manage mail queue ends here */ + +app.controller('MailScanner', function($scope, $http, $timeout, $window) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + + $scope.installSpamAssassin = function(){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installMailScanner"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.status === 1){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + getRequestStatus(); + + } + else{ + $scope.errorMessage = response.data.error_message; + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus(){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusSpamAssassin"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.abort === 0){ + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus,1000); + } + else{ + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if(response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + }else{ + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function() { $window.location.reload(); }, 3000); + } + + } + + } + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function() { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + function fetchSpamAssassinSettings(){ + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if(response.data.fetchStatus === 1){ + + if(response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); + } + + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; + + } + + } + + } + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } + + + ///// + + /// Save SpamAssassin Changes + + $scope.failedToSave = true; + $scope.successfullySaved = true; + + $scope.saveSpamAssassinConfigurations = function () { + + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + + + url = "/emailPremium/saveSpamAssassinConfigurations"; + + var data = { + report_safe:report_safe, + required_hits:$scope.required_hits, + rewrite_header:$scope.rewrite_header, + required_score:$scope.required_score + }; + + var config = { + headers : { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + + $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if(response.data.saveStatus === 1){ + + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + + } + else{ + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + + }; + +}); \ No newline at end of file From 1ab791ed8a7005179589cd92cde4a207a3202ead Mon Sep 17 00:00:00 2001 From: hennaboy Date: Thu, 28 May 2020 16:05:31 +0100 Subject: [PATCH 216/240] Update mailscannerinstaller.sh bugfix mailscanner --- CPScripts/mailscannerinstaller.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 274ccd919..96c6784c4 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -139,7 +139,7 @@ chown -R postfix:postfix /var/lock/subsys/MailScanner chown -R postfix:postfix /var/spool/MailScanner elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then -https://github.com/MailScanner/v5/releases/download/5.3.3-1/MailScanner-5.3.3-1.rhel.noarch.rpm +wget https://github.com/MailScanner/v5/releases/download/5.3.3-1/MailScanner-5.3.3-1.rhel.noarch.rpm rpm -Uvh *.rhel.noarch.rpm fi From 2f6e7a80f3a2dbe8dcd51aad2aa0251ad844a425 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 20:58:06 +0500 Subject: [PATCH 217/240] bug fix: mailscanner install --- .../static/emailPremium/emailPremium.js | 1505 ++++++++--------- emailPremium/views.py | 55 +- static/emailPremium/emailPremium.js | 1505 ++++++++--------- 3 files changed, 1556 insertions(+), 1509 deletions(-) diff --git a/emailPremium/static/emailPremium/emailPremium.js b/emailPremium/static/emailPremium/emailPremium.js index 9f580ac0b..df2d37e3e 100755 --- a/emailPremium/static/emailPremium/emailPremium.js +++ b/emailPremium/static/emailPremium/emailPremium.js @@ -4,7 +4,7 @@ /* Java script code to list accounts */ -app.controller('listDomains', function($scope,$http) { +app.controller('listDomains', function ($scope, $http) { $scope.listFail = true; $scope.emailLimitsLoading = true; @@ -13,7 +13,7 @@ app.controller('listDomains', function($scope,$http) { var globalPageNumber; - $scope.getFurtherWebsitesFromDB = function(pageNumber) { + $scope.getFurtherWebsitesFromDB = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -23,37 +23,36 @@ app.controller('listDomains', function($scope,$http) { var data = {page: pageNumber}; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.listWebSiteStatus === 1) { + if (response.data.listWebSiteStatus === 1) { - $scope.WebSitesList = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.WebSitesList = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getFurtherWebsitesFromDB(1); $scope.enableDisableEmailLimits = function (operationVal, domainName) { @@ -69,33 +68,32 @@ app.controller('listDomains', function($scope,$http) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.getFurtherWebsitesFromDB(globalPageNumber); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.getFurtherWebsitesFromDB(globalPageNumber); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } } }); @@ -104,7 +102,7 @@ app.controller('listDomains', function($scope,$http) { /* Java script code for email domain page */ -app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { +app.controller('emailDomainPage', function ($scope, $http, $timeout, $window) { $scope.listFail = true; $scope.emailLimitsLoading = true; @@ -115,7 +113,7 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { var globalPageNumber; - $scope.getFurtherEmailsFromDB = function(pageNumber) { + $scope.getFurtherEmailsFromDB = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -128,37 +126,36 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.emailList = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.emailList = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getFurtherEmailsFromDB(1); $scope.enableDisableEmailLimits = function (operationVal, domainName) { @@ -174,29 +171,34 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $timeout(function() { $window.location.reload(); }, 0); + $timeout(function () { + $window.location.reload(); + }, 0); + } else { + $timeout(function () { + $window.location.reload(); + }, 0); + } } - else - { - $timeout(function() { $window.location.reload(); }, 0); - } - } + function cantLoadInitialData(response) { - $timeout(function() { $window.location.reload(); }, 0); - } + $timeout(function () { + $window.location.reload(); + }, 0); + } }; @@ -219,27 +221,27 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; $scope.changeDomainEmailLimits = function (domainName) { - $scope.emailLimitsLoading = false; + $scope.emailLimitsLoading = false; - url = "/emailPremium/changeDomainLimit"; + url = "/emailPremium/changeDomainLimit"; - var data = { - domainName: domainName, - newLimit: $scope.monthlyLimit - }; + var data = { + domainName: domainName, + newLimit: $scope.monthlyLimit + }; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); - function ListInitialData(response) { + function ListInitialData(response) { - $scope.emailLimitsLoading = true; + $scope.emailLimitsLoading = true; if (response.data.status === 1) { @@ -248,10 +250,10 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { $scope.changeLimitsFail = true; $scope.changeLimitsSuccess = false; $scope.couldNotConnect = true; - $timeout(function() { $window.location.reload(); }, 3000); - } - else - { + $timeout(function () { + $window.location.reload(); + }, 3000); + } else { $scope.changeLimitsForm = false; $scope.changeLimitsFail = false; $scope.changeLimitsSuccess = true; @@ -260,12 +262,13 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { } } - function cantLoadInitialData(response) { - $scope.emailLimitsLoading = true; - $scope.changeLimitsForm = false; - $scope.changeLimitsFail = true; - $scope.changeLimitsSuccess = true; - $scope.couldNotConnect = false; + + function cantLoadInitialData(response) { + $scope.emailLimitsLoading = true; + $scope.changeLimitsForm = false; + $scope.changeLimitsFail = true; + $scope.changeLimitsSuccess = true; + $scope.couldNotConnect = false; } } @@ -283,28 +286,27 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { - $scope.getFurtherEmailsFromDB(1); + if (response.data.status === 1) { + $scope.getFurtherEmailsFromDB(1); + } else { + $scope.getFurtherEmailsFromDB(1); + } } - else - { - $scope.getFurtherEmailsFromDB(1); - } - } + function cantLoadInitialData(response) { $scope.getFurtherEmailsFromDB(1); - } + } }; }); @@ -313,7 +315,7 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { /* Java script code for Email Page */ -app.controller('emailPage', function($scope,$http, $timeout, $window) { +app.controller('emailPage', function ($scope, $http, $timeout, $window) { $scope.emailLimitsLoading = true; @@ -322,7 +324,7 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { // Global page number, to be used in later function to refresh the domains var globalPageNumber; - $scope.getEmailStats = function() { + $scope.getEmailStats = function () { $scope.emailLimitsLoading = false; @@ -338,56 +340,55 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.monthlyLimit = response.data.monthlyLimit; - $scope.monthlyUsed = response.data.monthlyUsed; - $scope.hourlyLimit = response.data.hourlyLimit; - $scope.hourlyUsed = response.data.hourlyUsed; + $scope.monthlyLimit = response.data.monthlyLimit; + $scope.monthlyUsed = response.data.monthlyUsed; + $scope.hourlyLimit = response.data.hourlyLimit; + $scope.hourlyUsed = response.data.hourlyUsed; + + if (response.data.limitStatus === 1) { + $scope.limitsOn = false; + $scope.limitsOff = true; + } else { + $scope.limitsOn = true; + $scope.limitsOff = false; + } + + if (response.data.logsStatus === 1) { + $scope.loggingOn = false; + $scope.loggingOff = true; + } else { + $scope.loggingOn = true; + $scope.loggingOff = false; + } + + } else { + + $scope.errorMessage = response.data.error_message; - if(response.data.limitStatus === 1){ - $scope.limitsOn = false; - $scope.limitsOff = true; - }else{ - $scope.limitsOn = true; - $scope.limitsOff = false; } - - if(response.data.logsStatus === 1){ - $scope.loggingOn = false; - $scope.loggingOff = true; - }else{ - $scope.loggingOn = true; - $scope.loggingOff = false; - } - } - else - { - $scope.errorMessage = response.data.error_message; - - } - } function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getEmailStats(); $scope.enableDisableIndividualEmailLimits = function (operationVal, emailAddress) { @@ -403,12 +404,12 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { @@ -416,15 +417,14 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { if (response.data.status === 1) { $scope.getEmailStats(); - } - else - { + } else { $scope.getEmailStats(); } - } + } + function cantLoadInitialData(response) { $scope.getEmailStats(); - } + } }; $scope.enableDisableIndividualEmailLogs = function (operationVal, emailAddress) { @@ -439,12 +439,12 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { @@ -452,15 +452,14 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { if (response.data.status === 1) { $scope.getEmailStats(); - } - else - { + } else { $scope.getEmailStats(); } - } + } + function cantLoadInitialData(response) { $scope.getEmailStats(); - } + } }; @@ -477,29 +476,34 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $timeout(function() { $window.location.reload(); }, 0); + $timeout(function () { + $window.location.reload(); + }, 0); + } else { + $timeout(function () { + $window.location.reload(); + }, 0); + } } - else - { - $timeout(function() { $window.location.reload(); }, 0); - } - } + function cantLoadInitialData(response) { - $timeout(function() { $window.location.reload(); }, 0); - } + $timeout(function () { + $window.location.reload(); + }, 0); + } }; @@ -521,28 +525,28 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; $scope.changeDomainEmailLimitsIndividual = function () { - $scope.emailLimitsLoading = false; + $scope.emailLimitsLoading = false; - url = "/emailPremium/changeDomainEmailLimitsIndividual"; + url = "/emailPremium/changeDomainEmailLimitsIndividual"; - var data = { - emailAddress: globalEamilAddress, - monthlyLimit: $scope.monthlyLimitForm, - hourlyLimit: $scope.hourlyLimitForm - }; + var data = { + emailAddress: globalEamilAddress, + monthlyLimit: $scope.monthlyLimitForm, + hourlyLimit: $scope.hourlyLimitForm + }; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); - function ListInitialData(response) { + function ListInitialData(response) { - $scope.emailLimitsLoading = true; + $scope.emailLimitsLoading = true; if (response.data.status === 1) { @@ -553,9 +557,7 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { $scope.couldNotConnect = true; $scope.getEmailStats(); - } - else - { + } else { $scope.changeLimitsForm = false; $scope.changeLimitsFail = false; $scope.changeLimitsSuccess = true; @@ -564,18 +566,19 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { } } - function cantLoadInitialData(response) { - $scope.emailLimitsLoading = true; - $scope.changeLimitsForm = false; - $scope.changeLimitsFail = true; - $scope.changeLimitsSuccess = true; - $scope.couldNotConnect = false; + + function cantLoadInitialData(response) { + $scope.emailLimitsLoading = true; + $scope.changeLimitsForm = false; + $scope.changeLimitsFail = true; + $scope.changeLimitsSuccess = true; + $scope.couldNotConnect = false; } }; /// Get email logs - $scope.getLogEntries = function(pageNumber) { + $scope.getLogEntries = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -588,41 +591,40 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.logs = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.logs = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getLogEntries(1); - $scope.flushLogs = function(emailAddress) { + $scope.flushLogs = function (emailAddress) { $scope.emailLimitsLoading = false; @@ -633,36 +635,35 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { - $scope.getLogEntries(1); + if (response.data.status === 1) { + $scope.getLogEntries(1); - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; } } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; } - }; + }; }); @@ -670,286 +671,285 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { /* Java script code for SpamAssassin */ -app.controller('SpamAssassin', function($scope, $http, $timeout, $window) { +app.controller('SpamAssassin', function ($scope, $http, $timeout, $window) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + $scope.installSpamAssassin = function () { - $scope.installSpamAssassin = function(){ + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + url = "/emailPremium/installSpamAssassin"; - url = "/emailPremium/installSpamAssassin"; + var data = {}; - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - getRequestStatus(); + getRequestStatus(); - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = false; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus() { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusSpamAssassin"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if (response.data.abort === 0) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus, 1000); + } else { + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if (response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + } else { + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function () { + $window.location.reload(); + }, 3000); + } + + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function () { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + + function fetchSpamAssassinSettings() { + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if (response.data.fetchStatus === 1) { + + if (response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); } - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - } - - }; - - function getRequestStatus(){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - url = "/emailPremium/installStatusSpamAssassin"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.abort === 0){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - $scope.requestData = response.data.requestStatus; - $timeout(getRequestStatus,1000); - } - else{ - // Notifications - $timeout.cancel(); - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - - $scope.requestData = response.data.requestStatus; - - if(response.data.installed === 0) { - $scope.installationFailed = false; - $scope.errorMessage = response.data.error_message; - }else{ - $scope.SpamAssassinSuccessfullyInstalled = false; - $timeout(function() { $window.location.reload(); }, 3000); - } - - } - - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; } - } + } - ///// SpamAssassin configs + } - var report_safe = false; + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } - $('#report_safe').change(function() { - report_safe = $(this).prop('checked'); - }); + ///// - fetchSpamAssassinSettings(); - function fetchSpamAssassinSettings(){ + /// Save SpamAssassin Changes - $scope.SpamAssassinLoading = false; + $scope.failedToSave = true; + $scope.successfullySaved = true; - $('#report_safe').bootstrapToggle('off'); + $scope.saveSpamAssassinConfigurations = function () { - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + url = "/emailPremium/saveSpamAssassinConfigurations"; - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + var data = { + report_safe: report_safe, + required_hits: $scope.required_hits, + rewrite_header: $scope.rewrite_header, + required_score: $scope.required_score + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if(response.data.fetchStatus === 1){ - - if(response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; + function ListInitialDatas(response) { - url = "/emailPremium/saveSpamAssassinConfigurations"; + if (response.data.saveStatus === 1) { - var data = { - report_safe:report_safe, - required_hits:$scope.required_hits, - rewrite_header:$scope.rewrite_header, - required_score:$scope.required_score - }; + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + } else { + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.saveStatus === 1){ - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } - else{ - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; + }; }); @@ -957,129 +957,128 @@ app.controller('SpamAssassin', function($scope, $http, $timeout, $window) { /* Java script code for Email Policy Server */ -app.controller('policyServer', function($scope, $http, $timeout, $window) { +app.controller('policyServer', function ($scope, $http, $timeout, $window) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = true; + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = true; - ///// SpamAssassin configs + ///// SpamAssassin configs - var report_safe = false; + var report_safe = false; - $('#policServerStatus').change(function() { - policServerStatus = $(this).prop('checked'); - }); + $('#policServerStatus').change(function () { + policServerStatus = $(this).prop('checked'); + }); - fetchPolicServerStatus(); - function fetchPolicServerStatus(){ + fetchPolicServerStatus(); - $scope.policyServerLoading = false; + function fetchPolicServerStatus() { - $('#policServerStatus').bootstrapToggle('off'); + $scope.policyServerLoading = false; - url = "/emailPremium/fetchPolicyServerStatus"; + $('#policServerStatus').bootstrapToggle('off'); - var data = {}; + url = "/emailPremium/fetchPolicyServerStatus"; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - $scope.policyServerLoading = true; + $scope.policyServerLoading = true; - if(response.data.status === 1){ + if (response.data.status === 1) { - if (response.data.installCheck === 1) { - $('#policServerStatus').bootstrapToggle('on'); - } - - }else{ - $scope.failedToFetch = false; - $scope.couldNotConnect = true; - $scope.changesApplied = true; - - $scope.errorMessage = response.data.error_message; - - } - - } - function cantLoadInitialDatas(response) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = false; - $scope.changesApplied = true; + if (response.data.installCheck === 1) { + $('#policServerStatus').bootstrapToggle('on'); } - } + } else { + $scope.failedToFetch = false; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + + $scope.errorMessage = response.data.error_message; + + } + + } + + function cantLoadInitialDatas(response) { + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = false; + $scope.changesApplied = true; + } + + } - $scope.savePolicServerStatus = function () { + $scope.savePolicServerStatus = function () { - $scope.policyServerLoading = false; - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = true; + $scope.policyServerLoading = false; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + url = "/emailPremium/savePolicyServerStatus"; - url = "/emailPremium/savePolicyServerStatus"; + var data = { + policServerStatus: policServerStatus + }; - var data = { - policServerStatus:policServerStatus - }; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { - $scope.policyServerLoading = true; + function ListInitialDatas(response) { + $scope.policyServerLoading = true; - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = false; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = false; - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.failedToFetch = false; - $scope.couldNotConnect = true; - $scope.changesApplied = true; - } + $scope.failedToFetch = false; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + } - } - function cantLoadInitialDatas(response) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = false; - $scope.changesApplied = true; - } + } + + function cantLoadInitialDatas(response) { + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = false; + $scope.changesApplied = true; + } - }; + }; }); @@ -1087,7 +1086,7 @@ app.controller('policyServer', function($scope, $http, $timeout, $window) { /* Java script code to manage mail queue */ -app.controller('mailQueue', function($scope,$http) { +app.controller('mailQueue', function ($scope, $http) { $scope.currentPage = 1; $scope.recordsToShow = 10; @@ -1248,8 +1247,7 @@ app.controller('mailQueue', function($scope,$http) { } }; - var data = { - }; + var data = {}; dataurl = "/emailPremium/flushQueue"; @@ -1289,285 +1287,284 @@ app.controller('mailQueue', function($scope,$http) { /* Java script code to manage mail queue ends here */ -app.controller('MailScanner', function($scope, $http, $timeout, $window) { +app.controller('MailScanner', function ($scope, $http, $timeout, $window) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + $scope.installSpamAssassin = function () { - $scope.installSpamAssassin = function(){ + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + url = "/emailPremium/installMailScanner"; - url = "/emailPremium/installMailScanner"; + var data = {}; - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - getRequestStatus(); + getRequestStatus(); - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = false; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus() { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusMailScanner"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if (response.data.abort === 0) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus, 1000); + } else { + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if (response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + } else { + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function () { + $window.location.reload(); + }, 3000); + } + + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function () { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + + function fetchSpamAssassinSettings() { + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if (response.data.fetchStatus === 1) { + + if (response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); } - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - } - - }; - - function getRequestStatus(){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - url = "/emailPremium/installStatusSpamAssassin"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.abort === 0){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - $scope.requestData = response.data.requestStatus; - $timeout(getRequestStatus,1000); - } - else{ - // Notifications - $timeout.cancel(); - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - - $scope.requestData = response.data.requestStatus; - - if(response.data.installed === 0) { - $scope.installationFailed = false; - $scope.errorMessage = response.data.error_message; - }else{ - $scope.SpamAssassinSuccessfullyInstalled = false; - $timeout(function() { $window.location.reload(); }, 3000); - } - - } - - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; } - } + } - ///// SpamAssassin configs + } - var report_safe = false; + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } - $('#report_safe').change(function() { - report_safe = $(this).prop('checked'); - }); + ///// - fetchSpamAssassinSettings(); - function fetchSpamAssassinSettings(){ + /// Save SpamAssassin Changes - $scope.SpamAssassinLoading = false; + $scope.failedToSave = true; + $scope.successfullySaved = true; - $('#report_safe').bootstrapToggle('off'); + $scope.saveSpamAssassinConfigurations = function () { - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + url = "/emailPremium/saveSpamAssassinConfigurations"; - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + var data = { + report_safe: report_safe, + required_hits: $scope.required_hits, + rewrite_header: $scope.rewrite_header, + required_score: $scope.required_score + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if(response.data.fetchStatus === 1){ - - if(response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; + function ListInitialDatas(response) { - url = "/emailPremium/saveSpamAssassinConfigurations"; + if (response.data.saveStatus === 1) { - var data = { - report_safe:report_safe, - required_hits:$scope.required_hits, - rewrite_header:$scope.rewrite_header, - required_score:$scope.required_score - }; + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + } else { + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.saveStatus === 1){ - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } - else{ - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; + }; }); \ No newline at end of file diff --git a/emailPremium/views.py b/emailPremium/views.py index 1bfdc9445..a26dd4e60 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -1190,7 +1190,6 @@ def MailScanner(request): if mailUtilities.checkIfMailScannerInstalled() == 1: checkIfMailScannerInstalled = 1 - return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}) except KeyError: @@ -1220,4 +1219,58 @@ def installMailScanner(request): except KeyError: final_dic = {'status': 0, 'error_message': "Not Logged In, please refresh the page or login again."} final_json = json.dumps(final_dic) + return HttpResponse(final_json) + +def installStatusMailScanner(request): + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadErrorJson() + + try: + if request.method == 'POST': + + command = "sudo cat " + mailUtilities.spamassassinInstallLogPath + installStatus = ProcessUtilities.outputExecutioner(command) + + if installStatus.find("[200]")>-1: + + final_json = json.dumps({ + 'error_message': "None", + 'requestStatus': installStatus, + 'abort': 1, + 'installed': 1, + }) + return HttpResponse(final_json) + + elif installStatus.find("[404]") > -1: + + final_json = json.dumps({ + 'abort':1, + 'installed':0, + 'error_message': "None", + 'requestStatus': installStatus, + }) + return HttpResponse(final_json) + + else: + final_json = json.dumps({ + 'abort':0, + 'error_message': "None", + 'requestStatus': installStatus, + }) + return HttpResponse(final_json) + + + except BaseException as msg: + final_dic = {'abort':1,'installed':0, 'error_message': str(msg)} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + except KeyError: + final_dic = {'abort':1,'installed':0, 'error_message': "Not Logged In, please refresh the page or login again."} + final_json = json.dumps(final_dic) return HttpResponse(final_json) \ No newline at end of file diff --git a/static/emailPremium/emailPremium.js b/static/emailPremium/emailPremium.js index 9f580ac0b..df2d37e3e 100644 --- a/static/emailPremium/emailPremium.js +++ b/static/emailPremium/emailPremium.js @@ -4,7 +4,7 @@ /* Java script code to list accounts */ -app.controller('listDomains', function($scope,$http) { +app.controller('listDomains', function ($scope, $http) { $scope.listFail = true; $scope.emailLimitsLoading = true; @@ -13,7 +13,7 @@ app.controller('listDomains', function($scope,$http) { var globalPageNumber; - $scope.getFurtherWebsitesFromDB = function(pageNumber) { + $scope.getFurtherWebsitesFromDB = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -23,37 +23,36 @@ app.controller('listDomains', function($scope,$http) { var data = {page: pageNumber}; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.listWebSiteStatus === 1) { + if (response.data.listWebSiteStatus === 1) { - $scope.WebSitesList = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.WebSitesList = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getFurtherWebsitesFromDB(1); $scope.enableDisableEmailLimits = function (operationVal, domainName) { @@ -69,33 +68,32 @@ app.controller('listDomains', function($scope,$http) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.getFurtherWebsitesFromDB(globalPageNumber); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.getFurtherWebsitesFromDB(globalPageNumber); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } } }); @@ -104,7 +102,7 @@ app.controller('listDomains', function($scope,$http) { /* Java script code for email domain page */ -app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { +app.controller('emailDomainPage', function ($scope, $http, $timeout, $window) { $scope.listFail = true; $scope.emailLimitsLoading = true; @@ -115,7 +113,7 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { var globalPageNumber; - $scope.getFurtherEmailsFromDB = function(pageNumber) { + $scope.getFurtherEmailsFromDB = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -128,37 +126,36 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.emailList = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.emailList = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getFurtherEmailsFromDB(1); $scope.enableDisableEmailLimits = function (operationVal, domainName) { @@ -174,29 +171,34 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $timeout(function() { $window.location.reload(); }, 0); + $timeout(function () { + $window.location.reload(); + }, 0); + } else { + $timeout(function () { + $window.location.reload(); + }, 0); + } } - else - { - $timeout(function() { $window.location.reload(); }, 0); - } - } + function cantLoadInitialData(response) { - $timeout(function() { $window.location.reload(); }, 0); - } + $timeout(function () { + $window.location.reload(); + }, 0); + } }; @@ -219,27 +221,27 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; $scope.changeDomainEmailLimits = function (domainName) { - $scope.emailLimitsLoading = false; + $scope.emailLimitsLoading = false; - url = "/emailPremium/changeDomainLimit"; + url = "/emailPremium/changeDomainLimit"; - var data = { - domainName: domainName, - newLimit: $scope.monthlyLimit - }; + var data = { + domainName: domainName, + newLimit: $scope.monthlyLimit + }; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); - function ListInitialData(response) { + function ListInitialData(response) { - $scope.emailLimitsLoading = true; + $scope.emailLimitsLoading = true; if (response.data.status === 1) { @@ -248,10 +250,10 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { $scope.changeLimitsFail = true; $scope.changeLimitsSuccess = false; $scope.couldNotConnect = true; - $timeout(function() { $window.location.reload(); }, 3000); - } - else - { + $timeout(function () { + $window.location.reload(); + }, 3000); + } else { $scope.changeLimitsForm = false; $scope.changeLimitsFail = false; $scope.changeLimitsSuccess = true; @@ -260,12 +262,13 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { } } - function cantLoadInitialData(response) { - $scope.emailLimitsLoading = true; - $scope.changeLimitsForm = false; - $scope.changeLimitsFail = true; - $scope.changeLimitsSuccess = true; - $scope.couldNotConnect = false; + + function cantLoadInitialData(response) { + $scope.emailLimitsLoading = true; + $scope.changeLimitsForm = false; + $scope.changeLimitsFail = true; + $scope.changeLimitsSuccess = true; + $scope.couldNotConnect = false; } } @@ -283,28 +286,27 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { - $scope.getFurtherEmailsFromDB(1); + if (response.data.status === 1) { + $scope.getFurtherEmailsFromDB(1); + } else { + $scope.getFurtherEmailsFromDB(1); + } } - else - { - $scope.getFurtherEmailsFromDB(1); - } - } + function cantLoadInitialData(response) { $scope.getFurtherEmailsFromDB(1); - } + } }; }); @@ -313,7 +315,7 @@ app.controller('emailDomainPage', function($scope,$http, $timeout, $window) { /* Java script code for Email Page */ -app.controller('emailPage', function($scope,$http, $timeout, $window) { +app.controller('emailPage', function ($scope, $http, $timeout, $window) { $scope.emailLimitsLoading = true; @@ -322,7 +324,7 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { // Global page number, to be used in later function to refresh the domains var globalPageNumber; - $scope.getEmailStats = function() { + $scope.getEmailStats = function () { $scope.emailLimitsLoading = false; @@ -338,56 +340,55 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.monthlyLimit = response.data.monthlyLimit; - $scope.monthlyUsed = response.data.monthlyUsed; - $scope.hourlyLimit = response.data.hourlyLimit; - $scope.hourlyUsed = response.data.hourlyUsed; + $scope.monthlyLimit = response.data.monthlyLimit; + $scope.monthlyUsed = response.data.monthlyUsed; + $scope.hourlyLimit = response.data.hourlyLimit; + $scope.hourlyUsed = response.data.hourlyUsed; + + if (response.data.limitStatus === 1) { + $scope.limitsOn = false; + $scope.limitsOff = true; + } else { + $scope.limitsOn = true; + $scope.limitsOff = false; + } + + if (response.data.logsStatus === 1) { + $scope.loggingOn = false; + $scope.loggingOff = true; + } else { + $scope.loggingOn = true; + $scope.loggingOff = false; + } + + } else { + + $scope.errorMessage = response.data.error_message; - if(response.data.limitStatus === 1){ - $scope.limitsOn = false; - $scope.limitsOff = true; - }else{ - $scope.limitsOn = true; - $scope.limitsOff = false; } - - if(response.data.logsStatus === 1){ - $scope.loggingOn = false; - $scope.loggingOff = true; - }else{ - $scope.loggingOn = true; - $scope.loggingOff = false; - } - } - else - { - $scope.errorMessage = response.data.error_message; - - } - } function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getEmailStats(); $scope.enableDisableIndividualEmailLimits = function (operationVal, emailAddress) { @@ -403,12 +404,12 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { @@ -416,15 +417,14 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { if (response.data.status === 1) { $scope.getEmailStats(); - } - else - { + } else { $scope.getEmailStats(); } - } + } + function cantLoadInitialData(response) { $scope.getEmailStats(); - } + } }; $scope.enableDisableIndividualEmailLogs = function (operationVal, emailAddress) { @@ -439,12 +439,12 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { @@ -452,15 +452,14 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { if (response.data.status === 1) { $scope.getEmailStats(); - } - else - { + } else { $scope.getEmailStats(); } - } + } + function cantLoadInitialData(response) { $scope.getEmailStats(); - } + } }; @@ -477,29 +476,34 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $timeout(function() { $window.location.reload(); }, 0); + $timeout(function () { + $window.location.reload(); + }, 0); + } else { + $timeout(function () { + $window.location.reload(); + }, 0); + } } - else - { - $timeout(function() { $window.location.reload(); }, 0); - } - } + function cantLoadInitialData(response) { - $timeout(function() { $window.location.reload(); }, 0); - } + $timeout(function () { + $window.location.reload(); + }, 0); + } }; @@ -521,28 +525,28 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; $scope.changeDomainEmailLimitsIndividual = function () { - $scope.emailLimitsLoading = false; + $scope.emailLimitsLoading = false; - url = "/emailPremium/changeDomainEmailLimitsIndividual"; + url = "/emailPremium/changeDomainEmailLimitsIndividual"; - var data = { - emailAddress: globalEamilAddress, - monthlyLimit: $scope.monthlyLimitForm, - hourlyLimit: $scope.hourlyLimitForm - }; + var data = { + emailAddress: globalEamilAddress, + monthlyLimit: $scope.monthlyLimitForm, + hourlyLimit: $scope.hourlyLimitForm + }; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); - function ListInitialData(response) { + function ListInitialData(response) { - $scope.emailLimitsLoading = true; + $scope.emailLimitsLoading = true; if (response.data.status === 1) { @@ -553,9 +557,7 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { $scope.couldNotConnect = true; $scope.getEmailStats(); - } - else - { + } else { $scope.changeLimitsForm = false; $scope.changeLimitsFail = false; $scope.changeLimitsSuccess = true; @@ -564,18 +566,19 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { } } - function cantLoadInitialData(response) { - $scope.emailLimitsLoading = true; - $scope.changeLimitsForm = false; - $scope.changeLimitsFail = true; - $scope.changeLimitsSuccess = true; - $scope.couldNotConnect = false; + + function cantLoadInitialData(response) { + $scope.emailLimitsLoading = true; + $scope.changeLimitsForm = false; + $scope.changeLimitsFail = true; + $scope.changeLimitsSuccess = true; + $scope.couldNotConnect = false; } }; /// Get email logs - $scope.getLogEntries = function(pageNumber) { + $scope.getLogEntries = function (pageNumber) { globalPageNumber = pageNumber; $scope.emailLimitsLoading = false; @@ -588,41 +591,40 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { + if (response.data.status === 1) { - $scope.logs = JSON.parse(response.data.data); - $scope.listFail = true; - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + $scope.logs = JSON.parse(response.data.data); + $scope.listFail = true; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; + } } - } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; - } + } - }; + }; $scope.getLogEntries(1); - $scope.flushLogs = function(emailAddress) { + $scope.flushLogs = function (emailAddress) { $scope.emailLimitsLoading = false; @@ -633,36 +635,35 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { }; var config = { - headers : { + headers: { 'X-CSRFToken': getCookie('csrftoken') } }; - $http.post(url, data,config).then(ListInitialData, cantLoadInitialData); + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); function ListInitialData(response) { $scope.emailLimitsLoading = true; - if (response.data.status === 1) { - $scope.getLogEntries(1); + if (response.data.status === 1) { + $scope.getLogEntries(1); - } - else - { - $scope.listFail = false; - $scope.errorMessage = response.data.error_message; + } else { + $scope.listFail = false; + $scope.errorMessage = response.data.error_message; } } + function cantLoadInitialData(response) { $scope.emailLimitsLoading = true; $scope.listFail = false; } - }; + }; }); @@ -670,286 +671,285 @@ app.controller('emailPage', function($scope,$http, $timeout, $window) { /* Java script code for SpamAssassin */ -app.controller('SpamAssassin', function($scope, $http, $timeout, $window) { +app.controller('SpamAssassin', function ($scope, $http, $timeout, $window) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + $scope.installSpamAssassin = function () { - $scope.installSpamAssassin = function(){ + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + url = "/emailPremium/installSpamAssassin"; - url = "/emailPremium/installSpamAssassin"; + var data = {}; - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - getRequestStatus(); + getRequestStatus(); - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = false; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus() { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusSpamAssassin"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if (response.data.abort === 0) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus, 1000); + } else { + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if (response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + } else { + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function () { + $window.location.reload(); + }, 3000); + } + + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function () { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + + function fetchSpamAssassinSettings() { + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if (response.data.fetchStatus === 1) { + + if (response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); } - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - } - - }; - - function getRequestStatus(){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - url = "/emailPremium/installStatusSpamAssassin"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.abort === 0){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - $scope.requestData = response.data.requestStatus; - $timeout(getRequestStatus,1000); - } - else{ - // Notifications - $timeout.cancel(); - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - - $scope.requestData = response.data.requestStatus; - - if(response.data.installed === 0) { - $scope.installationFailed = false; - $scope.errorMessage = response.data.error_message; - }else{ - $scope.SpamAssassinSuccessfullyInstalled = false; - $timeout(function() { $window.location.reload(); }, 3000); - } - - } - - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; } - } + } - ///// SpamAssassin configs + } - var report_safe = false; + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } - $('#report_safe').change(function() { - report_safe = $(this).prop('checked'); - }); + ///// - fetchSpamAssassinSettings(); - function fetchSpamAssassinSettings(){ + /// Save SpamAssassin Changes - $scope.SpamAssassinLoading = false; + $scope.failedToSave = true; + $scope.successfullySaved = true; - $('#report_safe').bootstrapToggle('off'); + $scope.saveSpamAssassinConfigurations = function () { - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + url = "/emailPremium/saveSpamAssassinConfigurations"; - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + var data = { + report_safe: report_safe, + required_hits: $scope.required_hits, + rewrite_header: $scope.rewrite_header, + required_score: $scope.required_score + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if(response.data.fetchStatus === 1){ - - if(response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; + function ListInitialDatas(response) { - url = "/emailPremium/saveSpamAssassinConfigurations"; + if (response.data.saveStatus === 1) { - var data = { - report_safe:report_safe, - required_hits:$scope.required_hits, - rewrite_header:$scope.rewrite_header, - required_score:$scope.required_score - }; + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + } else { + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.saveStatus === 1){ - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } - else{ - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; + }; }); @@ -957,129 +957,128 @@ app.controller('SpamAssassin', function($scope, $http, $timeout, $window) { /* Java script code for Email Policy Server */ -app.controller('policyServer', function($scope, $http, $timeout, $window) { +app.controller('policyServer', function ($scope, $http, $timeout, $window) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = true; + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = true; - ///// SpamAssassin configs + ///// SpamAssassin configs - var report_safe = false; + var report_safe = false; - $('#policServerStatus').change(function() { - policServerStatus = $(this).prop('checked'); - }); + $('#policServerStatus').change(function () { + policServerStatus = $(this).prop('checked'); + }); - fetchPolicServerStatus(); - function fetchPolicServerStatus(){ + fetchPolicServerStatus(); - $scope.policyServerLoading = false; + function fetchPolicServerStatus() { - $('#policServerStatus').bootstrapToggle('off'); + $scope.policyServerLoading = false; - url = "/emailPremium/fetchPolicyServerStatus"; + $('#policServerStatus').bootstrapToggle('off'); - var data = {}; + url = "/emailPremium/fetchPolicyServerStatus"; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - $scope.policyServerLoading = true; + $scope.policyServerLoading = true; - if(response.data.status === 1){ + if (response.data.status === 1) { - if (response.data.installCheck === 1) { - $('#policServerStatus').bootstrapToggle('on'); - } - - }else{ - $scope.failedToFetch = false; - $scope.couldNotConnect = true; - $scope.changesApplied = true; - - $scope.errorMessage = response.data.error_message; - - } - - } - function cantLoadInitialDatas(response) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = false; - $scope.changesApplied = true; + if (response.data.installCheck === 1) { + $('#policServerStatus').bootstrapToggle('on'); } - } + } else { + $scope.failedToFetch = false; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + + $scope.errorMessage = response.data.error_message; + + } + + } + + function cantLoadInitialDatas(response) { + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = false; + $scope.changesApplied = true; + } + + } - $scope.savePolicServerStatus = function () { + $scope.savePolicServerStatus = function () { - $scope.policyServerLoading = false; - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = true; + $scope.policyServerLoading = false; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + url = "/emailPremium/savePolicyServerStatus"; - url = "/emailPremium/savePolicyServerStatus"; + var data = { + policServerStatus: policServerStatus + }; - var data = { - policServerStatus:policServerStatus - }; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { - $scope.policyServerLoading = true; + function ListInitialDatas(response) { + $scope.policyServerLoading = true; - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.failedToFetch = true; - $scope.couldNotConnect = true; - $scope.changesApplied = false; + $scope.failedToFetch = true; + $scope.couldNotConnect = true; + $scope.changesApplied = false; - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.failedToFetch = false; - $scope.couldNotConnect = true; - $scope.changesApplied = true; - } + $scope.failedToFetch = false; + $scope.couldNotConnect = true; + $scope.changesApplied = true; + } - } - function cantLoadInitialDatas(response) { - $scope.policyServerLoading = true; - $scope.failedToFetch = true; - $scope.couldNotConnect = false; - $scope.changesApplied = true; - } + } + + function cantLoadInitialDatas(response) { + $scope.policyServerLoading = true; + $scope.failedToFetch = true; + $scope.couldNotConnect = false; + $scope.changesApplied = true; + } - }; + }; }); @@ -1087,7 +1086,7 @@ app.controller('policyServer', function($scope, $http, $timeout, $window) { /* Java script code to manage mail queue */ -app.controller('mailQueue', function($scope,$http) { +app.controller('mailQueue', function ($scope, $http) { $scope.currentPage = 1; $scope.recordsToShow = 10; @@ -1248,8 +1247,7 @@ app.controller('mailQueue', function($scope,$http) { } }; - var data = { - }; + var data = {}; dataurl = "/emailPremium/flushQueue"; @@ -1289,285 +1287,284 @@ app.controller('mailQueue', function($scope,$http) { /* Java script code to manage mail queue ends here */ -app.controller('MailScanner', function($scope, $http, $timeout, $window) { +app.controller('MailScanner', function ($scope, $http, $timeout, $window) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + $scope.installSpamAssassin = function () { - $scope.installSpamAssassin = function(){ + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + url = "/emailPremium/installMailScanner"; - url = "/emailPremium/installMailScanner"; + var data = {}; - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - function ListInitialDatas(response) { + function ListInitialDatas(response) { - if(response.data.status === 1){ + if (response.data.status === 1) { - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; - getRequestStatus(); + getRequestStatus(); - } - else{ - $scope.errorMessage = response.data.error_message; + } else { + $scope.errorMessage = response.data.error_message; - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = true; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = false; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = true; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = false; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + } + + }; + + function getRequestStatus() { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + url = "/emailPremium/installStatusMailScanner"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + + if (response.data.abort === 0) { + + $scope.SpamAssassinNotifyBox = true; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = false; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + $scope.requestData = response.data.requestStatus; + $timeout(getRequestStatus, 1000); + } else { + // Notifications + $timeout.cancel(); + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = true; + + $scope.requestData = response.data.requestStatus; + + if (response.data.installed === 0) { + $scope.installationFailed = false; + $scope.errorMessage = response.data.error_message; + } else { + $scope.SpamAssassinSuccessfullyInstalled = false; + $timeout(function () { + $window.location.reload(); + }, 3000); + } + + } + + } + + function cantLoadInitialDatas(response) { + + $scope.SpamAssassinNotifyBox = false; + $scope.SpamAssassinInstallBox = false; + $scope.SpamAssassinLoading = true; + $scope.failedToStartInallation = true; + $scope.couldNotConnect = false; + $scope.SpamAssassinSuccessfullyInstalled = true; + $scope.installationFailed = true; + + + } + + } + + ///// SpamAssassin configs + + var report_safe = false; + + + $('#report_safe').change(function () { + report_safe = $(this).prop('checked'); + }); + + fetchSpamAssassinSettings(); + + function fetchSpamAssassinSettings() { + + $scope.SpamAssassinLoading = false; + + $('#report_safe').bootstrapToggle('off'); + + url = "/emailPremium/fetchSpamAssassinSettings"; + + var data = {}; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + + $scope.SpamAssassinLoading = true; + + if (response.data.fetchStatus === 1) { + + if (response.data.installed === 1) { + + if (response.data.report_safe === 1) { + $('#report_safe').bootstrapToggle('on'); } - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - } - - }; - - function getRequestStatus(){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - url = "/emailPremium/installStatusSpamAssassin"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.abort === 0){ - - $scope.SpamAssassinNotifyBox = true; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = false; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - - $scope.requestData = response.data.requestStatus; - $timeout(getRequestStatus,1000); - } - else{ - // Notifications - $timeout.cancel(); - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = true; - - $scope.requestData = response.data.requestStatus; - - if(response.data.installed === 0) { - $scope.installationFailed = false; - $scope.errorMessage = response.data.error_message; - }else{ - $scope.SpamAssassinSuccessfullyInstalled = false; - $timeout(function() { $window.location.reload(); }, 3000); - } - - } - - } - function cantLoadInitialDatas(response) { - - $scope.SpamAssassinNotifyBox = false; - $scope.SpamAssassinInstallBox = false; - $scope.SpamAssassinLoading = true; - $scope.failedToStartInallation = true; - $scope.couldNotConnect = false; - $scope.SpamAssassinSuccessfullyInstalled = true; - $scope.installationFailed = true; - + $scope.required_hits = response.data.required_hits; + $scope.rewrite_header = response.data.rewrite_header; + $scope.required_score = response.data.required_score; } - } + } - ///// SpamAssassin configs + } - var report_safe = false; + function cantLoadInitialDatas(response) { + $scope.SpamAssassinLoading = true; + } + + } - $('#report_safe').change(function() { - report_safe = $(this).prop('checked'); - }); + ///// - fetchSpamAssassinSettings(); - function fetchSpamAssassinSettings(){ + /// Save SpamAssassin Changes - $scope.SpamAssassinLoading = false; + $scope.failedToSave = true; + $scope.successfullySaved = true; - $('#report_safe').bootstrapToggle('off'); + $scope.saveSpamAssassinConfigurations = function () { - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + $scope.failedToSave = true; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = false; + $scope.couldNotConnect = true; + url = "/emailPremium/saveSpamAssassinConfigurations"; - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); + var data = { + report_safe: report_safe, + required_hits: $scope.required_hits, + rewrite_header: $scope.rewrite_header, + required_score: $scope.required_score + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if(response.data.fetchStatus === 1){ - - if(response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; + function ListInitialDatas(response) { - url = "/emailPremium/saveSpamAssassinConfigurations"; + if (response.data.saveStatus === 1) { - var data = { - report_safe:report_safe, - required_hits:$scope.required_hits, - rewrite_header:$scope.rewrite_header, - required_score:$scope.required_score - }; + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; - var config = { - headers : { - 'X-CSRFToken': getCookie('csrftoken') - } - }; + } else { + $scope.errorMessage = response.data.error_message; + + $scope.failedToSave = false; + $scope.successfullySaved = true; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } + + } + + function cantLoadInitialDatas(response) { + $scope.failedToSave = true; + $scope.successfullySaved = false; + $scope.SpamAssassinLoading = true; + $scope.couldNotConnect = true; + } - - $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if(response.data.saveStatus === 1){ - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } - else{ - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; + }; }); \ No newline at end of file From e8b541ccea098430e18423dc8bcba01d41403905 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 21:00:48 +0500 Subject: [PATCH 218/240] bug fix: mailscanner install --- emailPremium/urls.py | 1 + 1 file changed, 1 insertion(+) diff --git a/emailPremium/urls.py b/emailPremium/urls.py index f4ebb2960..240a31f73 100755 --- a/emailPremium/urls.py +++ b/emailPremium/urls.py @@ -40,6 +40,7 @@ urlpatterns = [ url(r'^delete$', views.delete, name='delete'), url(r'^MailScanner$', views.MailScanner, name='MailScanner'), url(r'^installMailScanner$', views.installMailScanner, name='installMailScanner'), + url(r'^installStatusMailScanner$', views.installStatusMailScanner, name='installStatusMailScanner'), url(r'^(?P(.*))$', views.emailLimits, name='emailLimits'), From 28568b88296517ea77c3176996b17b4b18a31d60 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 21:29:48 +0500 Subject: [PATCH 219/240] bug fix: mail scanner --- .../static/emailPremium/emailPremium.js | 127 ------------------ emailPremium/views.py | 4 +- plogical/mailUtilities.py | 15 ++- static/emailPremium/emailPremium.js | 127 ------------------ 4 files changed, 10 insertions(+), 263 deletions(-) diff --git a/emailPremium/static/emailPremium/emailPremium.js b/emailPremium/static/emailPremium/emailPremium.js index df2d37e3e..eb1ec4b83 100755 --- a/emailPremium/static/emailPremium/emailPremium.js +++ b/emailPremium/static/emailPremium/emailPremium.js @@ -1297,7 +1297,6 @@ app.controller('MailScanner', function ($scope, $http, $timeout, $window) { $scope.SpamAssassinSuccessfullyInstalled = true; $scope.installationFailed = true; - $scope.installSpamAssassin = function () { $scope.SpamAssassinNotifyBox = true; @@ -1441,130 +1440,4 @@ app.controller('MailScanner', function ($scope, $http, $timeout, $window) { } } - - ///// SpamAssassin configs - - var report_safe = false; - - - $('#report_safe').change(function () { - report_safe = $(this).prop('checked'); - }); - - fetchSpamAssassinSettings(); - - function fetchSpamAssassinSettings() { - - $scope.SpamAssassinLoading = false; - - $('#report_safe').bootstrapToggle('off'); - - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if (response.data.fetchStatus === 1) { - - if (response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } - - - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; - - - url = "/emailPremium/saveSpamAssassinConfigurations"; - - var data = { - report_safe: report_safe, - required_hits: $scope.required_hits, - rewrite_header: $scope.rewrite_header, - required_score: $scope.required_score - }; - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if (response.data.saveStatus === 1) { - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } else { - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; - }); \ No newline at end of file diff --git a/emailPremium/views.py b/emailPremium/views.py index a26dd4e60..a589e4496 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -1190,7 +1190,7 @@ def MailScanner(request): if mailUtilities.checkIfMailScannerInstalled() == 1: checkIfMailScannerInstalled = 1 - return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}) + return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': 0, 'ipAddress': ipAddress}) except KeyError: return redirect(loadLoginPage) @@ -1234,7 +1234,7 @@ def installStatusMailScanner(request): try: if request.method == 'POST': - command = "sudo cat " + mailUtilities.spamassassinInstallLogPath + command = "sudo cat " + mailUtilities.mailScannerInstallLogPath installStatus = ProcessUtilities.outputExecutioner(command) if installStatus.find("[200]")>-1: diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 3424eccef..6e3d76fe8 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -30,6 +30,7 @@ class mailUtilities: installLogPath = "/home/cyberpanel/openDKIMInstallLog" spamassassinInstallLogPath = "/home/cyberpanel/spamassassinInstallLogPath" cyberPanelHome = "/home/cyberpanel" + mailScannerInstallLogPath = "/home/cyberpanel/mailScannerInstallLogPath" @staticmethod def SendEmail(sender, receivers, message): @@ -484,8 +485,8 @@ milter_default_action = accept def installMailScanner(install, SpamAssassin): try: - if os.path.exists(mailUtilities.spamassassinInstallLogPath): - os.remove(mailUtilities.spamassassinInstallLogPath) + if os.path.exists(mailUtilities.mailScannerInstallLogPath): + os.remove(mailUtilities.mailScannerInstallLogPath) if mailUtilities.checkIfSpamAssassinInstalled(): @@ -497,30 +498,30 @@ milter_default_action = accept cmd = shlex.split(command) - with open(mailUtilities.spamassassinInstallLogPath, 'w') as f: + with open(mailUtilities.mailScannerInstallLogPath, 'w') as f: res = subprocess.call(cmd, stdout=f) if res == 1: - writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile = open(mailUtilities.mailScannerInstallLogPath, 'a') writeToFile.writelines("Can not be installed.[404]\n") writeToFile.close() logging.CyberCPLogFileWriter.writeToFile("[Could not Install MailScanner.]") return 0 else: - writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile = open(mailUtilities.mailScannerInstallLogPath, 'a') writeToFile.writelines("MailScanner Installed.[200]\n") writeToFile.close() return 1 else: - writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile = open(mailUtilities.mailScannerInstallLogPath, 'a') writeToFile.writelines("Please install SpamAssassin from CyberPanel before installing MailScanner.[404]\n") writeToFile.close() except BaseException as msg: - writeToFile = open(mailUtilities.spamassassinInstallLogPath, 'a') + writeToFile = open(mailUtilities.mailScannerInstallLogPath, 'a') writeToFile.writelines("Can not be installed.[404]\n") writeToFile.close() logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[installSpamAssassin]") diff --git a/static/emailPremium/emailPremium.js b/static/emailPremium/emailPremium.js index df2d37e3e..eb1ec4b83 100644 --- a/static/emailPremium/emailPremium.js +++ b/static/emailPremium/emailPremium.js @@ -1297,7 +1297,6 @@ app.controller('MailScanner', function ($scope, $http, $timeout, $window) { $scope.SpamAssassinSuccessfullyInstalled = true; $scope.installationFailed = true; - $scope.installSpamAssassin = function () { $scope.SpamAssassinNotifyBox = true; @@ -1441,130 +1440,4 @@ app.controller('MailScanner', function ($scope, $http, $timeout, $window) { } } - - ///// SpamAssassin configs - - var report_safe = false; - - - $('#report_safe').change(function () { - report_safe = $(this).prop('checked'); - }); - - fetchSpamAssassinSettings(); - - function fetchSpamAssassinSettings() { - - $scope.SpamAssassinLoading = false; - - $('#report_safe').bootstrapToggle('off'); - - url = "/emailPremium/fetchSpamAssassinSettings"; - - var data = {}; - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - $scope.SpamAssassinLoading = true; - - if (response.data.fetchStatus === 1) { - - if (response.data.installed === 1) { - - if (response.data.report_safe === 1) { - $('#report_safe').bootstrapToggle('on'); - } - - $scope.required_hits = response.data.required_hits; - $scope.rewrite_header = response.data.rewrite_header; - $scope.required_score = response.data.required_score; - - } - - } - - } - - function cantLoadInitialDatas(response) { - $scope.SpamAssassinLoading = true; - } - - } - - - ///// - - /// Save SpamAssassin Changes - - $scope.failedToSave = true; - $scope.successfullySaved = true; - - $scope.saveSpamAssassinConfigurations = function () { - - $scope.failedToSave = true; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = false; - $scope.couldNotConnect = true; - - - url = "/emailPremium/saveSpamAssassinConfigurations"; - - var data = { - report_safe: report_safe, - required_hits: $scope.required_hits, - rewrite_header: $scope.rewrite_header, - required_score: $scope.required_score - }; - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - - - if (response.data.saveStatus === 1) { - - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - - } else { - $scope.errorMessage = response.data.error_message; - - $scope.failedToSave = false; - $scope.successfullySaved = true; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - } - - function cantLoadInitialDatas(response) { - $scope.failedToSave = true; - $scope.successfullySaved = false; - $scope.SpamAssassinLoading = true; - $scope.couldNotConnect = true; - } - - - }; - }); \ No newline at end of file From 95212f824029c0c434842dac9102cc1c6e8d9b78 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 28 May 2020 21:30:13 +0500 Subject: [PATCH 220/240] bug fix: mail scanner --- emailPremium/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emailPremium/views.py b/emailPremium/views.py index a589e4496..2c502fa0a 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -1190,7 +1190,7 @@ def MailScanner(request): if mailUtilities.checkIfMailScannerInstalled() == 1: checkIfMailScannerInstalled = 1 - return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': 0, 'ipAddress': ipAddress}) + return render(request, 'emailPremium/MailScanner.html',{'checkIfMailScannerInstalled': checkIfMailScannerInstalled, 'ipAddress': ipAddress}) except KeyError: return redirect(loadLoginPage) From a04c88c7c32b38caaa132fb41436d5f83e0c7be4 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 29 May 2020 10:49:31 +0500 Subject: [PATCH 221/240] bug fix: enable shell for mailscanner install --- plogical/mailUtilities.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 6e3d76fe8..e3789c3d3 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -499,7 +499,7 @@ milter_default_action = accept cmd = shlex.split(command) with open(mailUtilities.mailScannerInstallLogPath, 'w') as f: - res = subprocess.call(cmd, stdout=f) + res = subprocess.call(cmd, stdout=f, shell=True) if res == 1: writeToFile = open(mailUtilities.mailScannerInstallLogPath, 'a') From 2040984b2c4ad8c3ccdcf69aee7e8915a3ab8ea2 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 29 May 2020 11:21:13 +0500 Subject: [PATCH 222/240] remove status file if already present --- emailPremium/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/emailPremium/views.py b/emailPremium/views.py index 2c502fa0a..62f224844 100755 --- a/emailPremium/views.py +++ b/emailPremium/views.py @@ -832,6 +832,11 @@ def installStatusSpamAssassin(request): output = ProcessUtilities.outputExecutioner(execPath, 'root') if output.find("1,None") > -1: + + import os + if os.path.exists(mailUtilities.mailScannerInstallLogPath): + os.remove(mailUtilities.mailScannerInstallLogPath) + final_json = json.dumps({ 'error_message': "None", 'requestStatus': installStatus, From 57294171eef470774c8a077a0a5ccc1b6a56d07a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 29 May 2020 14:20:33 +0500 Subject: [PATCH 223/240] add command status --- CPScripts/mailscannerinstaller.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 96c6784c4..57586408b 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -1,6 +1,16 @@ #!/bin/bash #systemctl stop firewalld +check_return() { +#check previous command result , 0 = ok , non-0 = something wrong. +if [[ $? -eq "0" ]] ; then + : +else + echo -e "\ncommand failed, exiting..." + exit +fi +} + echo 'backup configs'; cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf-bak_$(date '+%Y-%m-%d_%H_%M:%S'); cp /etc/postfix/master.cf /etc/postfix/master.cf-bak_$(date '+%Y-%m-%d_%H_%M:%S'); @@ -69,13 +79,21 @@ yum install -y gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive rpm -Uvh https://forensics.cert.org/centos/cert/8/x86_64/unrar-5.4.0-1.el8.x86_64.rpm export PERL_MM_USE_DEFAULT=1 +check_return curl -L https://cpanmin.us | perl - App::cpanminus +check_return cpanm Encoding::FixLatin +check_return cpanm Digest::SHA1 +check_return cpanm Geo::IP +check_return cpanm Razor2::Client::Agent +check_return cpanm Sys::Hostname::Long +check_return cpanm Sys::SigAction +check_return freshclam -v From 2b9eae7d59529f4e254375a54099c077dbbf14f9 Mon Sep 17 00:00:00 2001 From: hennaboy Date: Fri, 29 May 2020 18:18:45 +0100 Subject: [PATCH 224/240] Update mailscannerinstaller.sh fixes for centos 7 and 8 --- CPScripts/mailscannerinstaller.sh | 36 +++++++++++++------------------ 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/CPScripts/mailscannerinstaller.sh b/CPScripts/mailscannerinstaller.sh index 57586408b..9c193fdb8 100644 --- a/CPScripts/mailscannerinstaller.sh +++ b/CPScripts/mailscannerinstaller.sh @@ -50,11 +50,11 @@ yum install -y gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive rpm -Uvh https://forensics.cert.org/centos/cert/7/x86_64/unrar-5.4.0-1.el7.x86_64.rpm export PERL_MM_USE_DEFAULT=1 curl -L https://cpanmin.us | perl - App::cpanminus -cpanm Encoding::FixLatin -cpanm Digest::SHA1 -cpanm Geo::IP -cpanm Razor2::Client::Agent -cpanm Net::Patricia +perl -MCPAN -e 'install Encoding::FixLatin' +perl -MCPAN -e 'install Digest::SHA1' +perl -MCPAN -e 'install Geo::IP' +perl -MCPAN -e 'install Razor2::Client::Agent' +perl -MCPAN -e 'install Net::Patricia' freshclam -v DIR=/etc/mail/spamassassin @@ -79,21 +79,16 @@ yum install -y gcc cpp perl bzip2 zip make patch automake rpm-build perl-Archive rpm -Uvh https://forensics.cert.org/centos/cert/8/x86_64/unrar-5.4.0-1.el8.x86_64.rpm export PERL_MM_USE_DEFAULT=1 -check_return curl -L https://cpanmin.us | perl - App::cpanminus -check_return -cpanm Encoding::FixLatin -check_return -cpanm Digest::SHA1 -check_return -cpanm Geo::IP -check_return -cpanm Razor2::Client::Agent -check_return -cpanm Sys::Hostname::Long -check_return -cpanm Sys::SigAction -check_return + +perl -MCPAN -e 'install Encoding::FixLatin' +perl -MCPAN -e 'install Digest::SHA1' +perl -MCPAN -e 'install Geo::IP' +perl -MCPAN -e 'install Razor2::Client::Agent' +perl -MCPAN -e 'install Sys::Hostname::Long' +perl -MCPAN -e 'install Sys::SigAction' + + freshclam -v @@ -159,7 +154,6 @@ chown -R postfix:postfix /var/spool/MailScanner elif [ "$OS" = "NAME=\"CentOS Linux\"" ];then wget https://github.com/MailScanner/v5/releases/download/5.3.3-1/MailScanner-5.3.3-1.rhel.noarch.rpm rpm -Uvh *.rhel.noarch.rpm - fi mkdir /var/spool/MailScanner/spamassassin @@ -351,7 +345,7 @@ fi echo 'Restart and check services are up' -systemctl restart dovecot && systemctl restart postfix && systemctl restart spamassassin; +systemctl restart dovecot && systemctl restart postfix && systemctl restart spamassassin && systemctl restart mailscanner; csf -e From 591d398e2a9a0b0eb6204d1c3ecdd92cc5c68a24 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 29 May 2020 22:29:52 +0500 Subject: [PATCH 225/240] open mailscanner in new window --- emailPremium/templates/emailPremium/MailScanner.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emailPremium/templates/emailPremium/MailScanner.html b/emailPremium/templates/emailPremium/MailScanner.html index 831b710e7..e663e6146 100755 --- a/emailPremium/templates/emailPremium/MailScanner.html +++ b/emailPremium/templates/emailPremium/MailScanner.html @@ -85,7 +85,7 @@
    -

    {% trans "SpamAssassin successfully installed, refreshing page in 3 seconds.." %}

    +

    {% trans "MailScanner successfully installed, refreshing page in 3 seconds.." %}

    diff --git a/install/firewallUtilities.py b/install/firewallUtilities.py index 8884eae16..92e4b6a81 100755 --- a/install/firewallUtilities.py +++ b/install/firewallUtilities.py @@ -56,6 +56,8 @@ class FirewallUtilities: @staticmethod def deleteRule(proto, port): + print('Adding port: %s' % (port)) + if port=="21": command = "sudo firewall-cmd --remove-service=ftp --permanent" else: diff --git a/install/install.py b/install/install.py index cfb9eee6e..8d7d6df38 100755 --- a/install/install.py +++ b/install/install.py @@ -1244,8 +1244,6 @@ imap_folder_list_limit = 0 def installFirewalld(self): - if self.distro == cent8: - return 0 if self.distro == ubuntu: self.removeUfw() @@ -1260,7 +1258,7 @@ imap_folder_list_limit = 0 preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) ###### - if self.distro == centos or self.distro == cent8: + if self.distro == centos: # Not available in ubuntu command = 'systemctl restart dbus' preFlightsChecks.call(command, self.distro, command, command, 1, 0, os.EX_OSERR) From 6769e83aa189aab6ffa692a22541c75901263a68 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Fri, 29 May 2020 23:39:41 +0500 Subject: [PATCH 227/240] fix job success calculator --- install/firewallUtilities.py | 4 +++- plogical/backupSchedule.py | 10 +++++++++- plogical/backupScheduleLocal.py | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/install/firewallUtilities.py b/install/firewallUtilities.py index 92e4b6a81..e3a97d330 100755 --- a/install/firewallUtilities.py +++ b/install/firewallUtilities.py @@ -25,6 +25,9 @@ class FirewallUtilities: @staticmethod def addRule(proto,port): + + print('Adding port: %s' % (port)) + if port == "21": command = "sudo firewall-cmd --add-service=ftp --permanent" else: @@ -56,7 +59,6 @@ class FirewallUtilities: @staticmethod def deleteRule(proto, port): - print('Adding port: %s' % (port)) if port=="21": command = "sudo firewall-cmd --remove-service=ftp --permanent" diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 46f531eab..75c440e75 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -216,6 +216,7 @@ class backupSchedule: backupSchedule.remoteBackupLogging(backupLogPath, "") backupSchedule.remoteBackupLogging(backupLogPath, "") + return 1 else: backupSchedule.remoteBackupLogging(backupLogPath, 'Remote backup creation failed for %s.' % (virtualHost) ) @@ -227,6 +228,7 @@ class backupSchedule: backupSchedule.remoteBackupLogging(backupLogPath, "") backupSchedule.remoteBackupLogging(backupLogPath, "") + return 0 except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [backupSchedule.createBackup]") @@ -332,8 +334,14 @@ class backupSchedule: for virtualHost in os.listdir("/home"): if match(r'^[a-zA-Z0-9-]*[a-zA-Z0-9-]{0,61}[a-zA-Z0-9-](?:\.[a-zA-Z0-9-]{2,})+$', virtualHost, M | I): - backupSchedule.createBackup(virtualHost, ipAddress, backupLogPath, port, user) + if backupSchedule.createBackup(virtualHost, ipAddress, backupLogPath, port, user): + jobSuccessSites = jobSuccessSites + 1 + else: + jobFailedSites = jobFailedSites + 1 + backupSchedule.backupLog.jobFailedSites = jobFailedSites + backupSchedule.backupLog.jobSuccessSites = jobSuccessSites + backupSchedule.backupLog.save() backupSchedule.remoteBackupLogging(backupLogPath, "Remote backup job completed.\n") diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index 6065b9c92..b233d8789 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -62,6 +62,7 @@ class backupScheduleLocal: if retValues[0] == 0: backupSchedule.remoteBackupLogging(backupLogPath, '[ERROR] Backup failed for %s, error: %s moving on..' % (virtualHost, retValues[1]), backupSchedule.ERROR) + jobFailedSites = jobFailedSites + 1 continue if os.path.exists(backupScheduleLocal.localBackupPath): From 5b012c7b96e6a091a95490f384b2aabd3f2ec8d2 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 30 May 2020 11:51:56 +0500 Subject: [PATCH 228/240] check if backup process actually running --- plogical/backupSchedule.py | 15 ++++++++++++--- plogical/backupScheduleLocal.py | 11 ++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index 75c440e75..f988fd75c 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -265,9 +265,18 @@ class backupSchedule: try: if os.path.exists(backupSchedule.runningPath): - pid = open(backupSchedule.runningPath, 'r').read() - print('\n\nRemote backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) - return 0 + + output = ProcessUtilities.outputExecutioner('ps aux') + + if output.find('/usr/local/CyberCP/plogical/backupSchedule.py') > -1: + pid = open(backupSchedule.runningPath, 'r').read() + print( + '\n\nRemote backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % ( + pid, pid)) + return 0 + else: + os.remove(backupSchedule.runningPath) + writeToFile = open(backupSchedule.runningPath, 'w') writeToFile.write(str(os.getpid())) diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index b233d8789..32b379757 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -29,9 +29,14 @@ class backupScheduleLocal: try: if os.path.exists(backupScheduleLocal.runningPath): - pid = open(backupScheduleLocal.runningPath, 'r').read() - print('\n\nLocal backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) - return 0 + output = ProcessUtilities.outputExecutioner('ps aux') + + if output.find('/usr/local/CyberCP/plogical/backupScheduleLocal.py') > -1: + pid = open(backupScheduleLocal.runningPath, 'r').read() + print('\n\nLocal backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) + return 0 + else: + os.remove(backupScheduleLocal.runningPath) writeToFile = open(backupScheduleLocal.runningPath, 'w') writeToFile.write(str(os.getpid())) From 82137089218342d0c54f9e714ae3fed4a28fa7c4 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 30 May 2020 12:33:50 +0500 Subject: [PATCH 229/240] check if backup process actually running --- plogical/backupSchedule.py | 3 ++- plogical/backupScheduleLocal.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index f988fd75c..e58d9fe23 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -265,10 +265,11 @@ class backupSchedule: try: if os.path.exists(backupSchedule.runningPath): + pid = open(backupSchedule.runningPath, 'r').read() output = ProcessUtilities.outputExecutioner('ps aux') - if output.find('/usr/local/CyberCP/plogical/backupSchedule.py') > -1: + if output.find('/usr/local/CyberCP/plogical/backupSchedule.py') > -1 and output.find(pid) > -1: pid = open(backupSchedule.runningPath, 'r').read() print( '\n\nRemote backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % ( diff --git a/plogical/backupScheduleLocal.py b/plogical/backupScheduleLocal.py index 32b379757..345d7b610 100755 --- a/plogical/backupScheduleLocal.py +++ b/plogical/backupScheduleLocal.py @@ -30,9 +30,9 @@ class backupScheduleLocal: if os.path.exists(backupScheduleLocal.runningPath): output = ProcessUtilities.outputExecutioner('ps aux') + pid = open(backupScheduleLocal.runningPath, 'r').read() - if output.find('/usr/local/CyberCP/plogical/backupScheduleLocal.py') > -1: - pid = open(backupScheduleLocal.runningPath, 'r').read() + if output.find('/usr/local/CyberCP/plogical/backupScheduleLocal.py') > -1 and output.find(pid) > -1: print('\n\nLocal backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % (pid, pid)) return 0 else: From 55eff1a850ed734cd1d45e249ed88eaabf36de52 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sat, 30 May 2020 12:35:28 +0500 Subject: [PATCH 230/240] check if backup process actually running --- plogical/backupSchedule.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plogical/backupSchedule.py b/plogical/backupSchedule.py index e58d9fe23..d9d800b8e 100755 --- a/plogical/backupSchedule.py +++ b/plogical/backupSchedule.py @@ -270,7 +270,6 @@ class backupSchedule: output = ProcessUtilities.outputExecutioner('ps aux') if output.find('/usr/local/CyberCP/plogical/backupSchedule.py') > -1 and output.find(pid) > -1: - pid = open(backupSchedule.runningPath, 'r').read() print( '\n\nRemote backup is already running with PID: %s. If you want to run again kindly kill the backup process: \n\n kill -9 %s.\n\n' % ( pid, pid)) From 6007f7f9bc486f204fa5f2f1a5a577a9d4915df5 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 31 May 2020 23:49:29 +0500 Subject: [PATCH 231/240] bug fix: update terminal to use tornado --- WebTerminal/CPWebSocket.py | 24 ++-- WebTerminal/static/WebTerminal/main.js | 10 -- plogical/test.py | 154 +++++++++++++++++++++++++ 3 files changed, 171 insertions(+), 17 deletions(-) diff --git a/WebTerminal/CPWebSocket.py b/WebTerminal/CPWebSocket.py index 28cffc428..15b958e69 100644 --- a/WebTerminal/CPWebSocket.py +++ b/WebTerminal/CPWebSocket.py @@ -1,7 +1,6 @@ #!/usr/local/CyberCP/bin/python import sys import os -import django sys.path.append('/usr/local/CyberCP') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging @@ -34,7 +33,7 @@ class SSHServer(multi.Thread): else: SSHServer.DEFAULT_PORT = int(items.split(' ')[1]) except BaseException as msg: - logging.writeToFile(str(msg)) + logging.writeToFile('%s. [SSHServer.findSSHPort]' % (str(msg))) def loadPublicKey(self): pubkey = '/root/.ssh/cyberpanel.pub' @@ -91,20 +90,23 @@ class SSHServer(multi.Thread): else: return 0 except BaseException as msg: + print(str(msg)) time.sleep(0.1) def run(self): try: self.recvData() except BaseException as msg: - print((str(msg))) + print('%s. [SSHServer.run]' % (str(msg))) class WebTerminalServer(WebSocket): def handleMessage(self): try: + print('handle message') data = json.loads(self.data) + print(str(data)) if str(self.data).find('"tp":"init"') > -1: self.verifyPath = str(data['data']['verifyPath']) self.password = str(data['data']['password']) @@ -113,20 +115,26 @@ class WebTerminalServer(WebSocket): if os.path.exists(self.verifyPath): if self.filePassword == self.password: self.shell.send(str(data['data'])) - except: - pass + except BaseException as msg: + print('%s. [WebTerminalServer.handleMessage]' % (str(msg))) def handleConnected(self): + print('connected') self.running = 1 self.sh = SSHServer(self) self.shell = self.sh.shell self.sh.start() + print('connect ok') def handleClose(self): try: - os.remove(self.verifyPath) + try: + os.remove(self.verifyPath) + except: + pass self.running = 0 - except: + except BaseException as msg: + print('%s. [WebTerminalServer.handleClose]' % (str(msg))) pass @@ -147,5 +155,7 @@ if __name__ == "__main__": server.close() sys.exit() + print('server started') + signal.signal(signal.SIGINT, close_sig_handler) server.serveforever() \ No newline at end of file diff --git a/WebTerminal/static/WebTerminal/main.js b/WebTerminal/static/WebTerminal/main.js index f7443fdbe..248737afc 100755 --- a/WebTerminal/static/WebTerminal/main.js +++ b/WebTerminal/static/WebTerminal/main.js @@ -73,16 +73,6 @@ function connect() { if (remember) { store(options) } - // if (check()) { - // openTerminal(options) - // } else { - // for (var key in validResult) { - // if (!validResult[key]) { - // alert(errorMsg[key]); - // break; - // } - // } - // } openTerminal(options) } diff --git a/plogical/test.py b/plogical/test.py index e69de29bb..886dcd95e 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -0,0 +1,154 @@ +import tornado.httpserver +import tornado.websocket +import tornado.ioloop +import tornado.web +import socket#!/usr/local/CyberCP/bin/python +import sys +import os +sys.path.append('/usr/local/CyberCP') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") +from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging +import paramiko +import os +import json +import threading as multi +import time +import asyncio +''' +This is a simple Websocket Echo server that uses the Tornado websocket handler. +Please run `pip install tornado` with python of version 2.7.9 or greater to install tornado. +This program will echo back the reverse of whatever it recieves. +Messages are output to the terminal for debuggin purposes. +''' + + +class SSHServer(multi.Thread): + OKGREEN = '\033[92m' + ENDC = '\033[0m' + + DEFAULT_PORT = 22 + + @staticmethod + def findSSHPort(): + try: + sshData = open('/etc/ssh/sshd_config', 'r').readlines() + + for items in sshData: + if items.find('Port') > -1: + if items[0] == 0: + pass + else: + SSHServer.DEFAULT_PORT = int(items.split(' ')[1]) + except BaseException as msg: + logging.writeToFile('%s. [SSHServer.findSSHPort]' % (str(msg))) + + def loadPublicKey(self): + pubkey = '/root/.ssh/cyberpanel.pub' + data = open(pubkey, 'r').read() + authFile = '/root/.ssh/authorized_keys' + + checker = 1 + + try: + authData = open(authFile, 'r').read() + if authData.find(data) > -1: + checker = 0 + except: + pass + + if checker: + writeToFile = open(authFile, 'a') + writeToFile.writelines(data) + writeToFile.close() + + def __init__(self, websocket): + multi.Thread.__init__(self) + self.sshclient = paramiko.SSHClient() + self.sshclient.load_system_host_keys() + self.sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + k = paramiko.RSAKey.from_private_key_file('/root/.ssh/cyberpanel') + + ## Load Public Key + self.loadPublicKey() + + self.sshclient.connect('127.0.0.1', SSHServer.DEFAULT_PORT, username='root', pkey=k) + self.shell = self.sshclient.invoke_shell(term='xterm') + self.shell.settimeout(0) + + self.websocket = websocket + self.color = 0 + + def recvData(self): + asyncio.set_event_loop(asyncio.new_event_loop()) + while True: + try: + if self.websocket.running: + if os.path.exists(self.verifyPath) and self.filePassword == self.password: + if self.shell.recv_ready(): + self.websocket.write_message(self.shell.recv(9000).decode("utf-8")) + else: + time.sleep(0.001) + else: + return 0 + else: + return 0 + except BaseException as msg: + print('%s. [recvData]' % str(msg)) + time.sleep(0.001) + + def run(self): + try: + self.recvData() + except BaseException as msg: + print('%s. [SSHServer.run]' % (str(msg))) + + +class WSHandler(tornado.websocket.WebSocketHandler): + + def open(self): + print('connected') + self.running = 1 + self.sh = SSHServer(self) + self.shell = self.sh.shell + self.sh.start() + self.init = 1 + print('connect ok') + + def on_message(self, message): + try: + print('handle message') + data = json.loads(message) + + if self.init: + self.sh.verifyPath = str(data['data']['verifyPath']) + self.sh.password = str(data['data']['password']) + self.sh.filePassword = open(self.sh.verifyPath, 'r').read() + self.init = 0 + else: + if os.path.exists(self.sh.verifyPath): + if self.sh.filePassword == self.sh.password: + self.shell.send(str(data['data'])) + + except BaseException as msg: + print('%s. [WebTerminalServer.handleMessage]' % (str(msg))) + + def on_close(self): + print('connection closed') + + def check_origin(self, origin): + return True + + +application = tornado.web.Application([ + (r'/', WSHandler), +]) + +if __name__ == "__main__": + http_server = tornado.httpserver.HTTPServer(application, ssl_options={ + "certfile": "/usr/local/lscp/conf/cert.pem", + "keyfile": "/usr/local/lscp/conf/key.pem", + }, ) + ADDR = '0.0.0.0' + http_server.listen(5678, ADDR) + print('*** Websocket Server Started at %s***' % ADDR) + tornado.ioloop.IOLoop.instance().start() \ No newline at end of file From c421d71ae50b1110eb47cf403c9618e3bef5e295 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 13:24:52 +0500 Subject: [PATCH 232/240] update req file --- WebTerminal/CPWebSocket.py | 130 +++++++++++++++---------------- plogical/test.py | 154 ------------------------------------- requirments.txt | 2 +- 3 files changed, 66 insertions(+), 220 deletions(-) diff --git a/WebTerminal/CPWebSocket.py b/WebTerminal/CPWebSocket.py index 15b958e69..d9a449328 100644 --- a/WebTerminal/CPWebSocket.py +++ b/WebTerminal/CPWebSocket.py @@ -1,18 +1,18 @@ -#!/usr/local/CyberCP/bin/python +import tornado.httpserver +import tornado.websocket +import tornado.ioloop +import tornado.web import sys import os sys.path.append('/usr/local/CyberCP') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging -import signal -import sys -import ssl -from SimpleWebSocketServer import WebSocket, SimpleSSLWebSocketServer import paramiko import os import json import threading as multi import time +import asyncio class SSHServer(multi.Thread): @@ -72,26 +72,22 @@ class SSHServer(multi.Thread): self.color = 0 def recvData(self): + asyncio.set_event_loop(asyncio.new_event_loop()) while True: try: if self.websocket.running: - if os.path.exists(self.websocket.verifyPath): - if self.websocket.filePassword == self.websocket.password: - if self.shell.recv_ready(): - if self.color == 0: - text = '%sEnjoy your accelerated Internet by CyberPanel and LiteSpeed%s' % (SSHServer.OKGREEN, SSHServer.ENDC) - nText = 'Enjoy your accelerated Internet by CyberPanel' - self.websocket.sendMessage(self.shell.recv(9000).decode("utf-8").replace(nText, text)) - self.color = 1 - else: - self.websocket.sendMessage(self.shell.recv(9000).decode("utf-8")) - else: - time.sleep(0.01) + if os.path.exists(self.verifyPath) and self.filePassword == self.password: + if self.shell.recv_ready(): + self.websocket.write_message(self.shell.recv(9000).decode("utf-8")) + else: + time.sleep(0.001) + else: + return 0 else: return 0 except BaseException as msg: - print(str(msg)) - time.sleep(0.1) + print('%s. [recvData]' % str(msg)) + time.sleep(0.001) def run(self): try: @@ -99,63 +95,67 @@ class SSHServer(multi.Thread): except BaseException as msg: print('%s. [SSHServer.run]' % (str(msg))) +class WSHandler(tornado.websocket.WebSocketHandler): -class WebTerminalServer(WebSocket): + def open(self): + print('connected') + self.running = 1 + self.sh = SSHServer(self) + self.shell = self.sh.shell + self.sh.start() + self.init = 1 + print('connect ok') - def handleMessage(self): - try: - print('handle message') - data = json.loads(self.data) - print(str(data)) - if str(self.data).find('"tp":"init"') > -1: - self.verifyPath = str(data['data']['verifyPath']) - self.password = str(data['data']['password']) - self.filePassword = open(self.verifyPath, 'r').read() - else: - if os.path.exists(self.verifyPath): - if self.filePassword == self.password: - self.shell.send(str(data['data'])) - except BaseException as msg: - print('%s. [WebTerminalServer.handleMessage]' % (str(msg))) + def on_message(self, message): + try: + print('handle message') + data = json.loads(message) - def handleConnected(self): - print('connected') - self.running = 1 - self.sh = SSHServer(self) - self.shell = self.sh.shell - self.sh.start() - print('connect ok') + if self.init: + self.sh.verifyPath = str(data['data']['verifyPath']) + self.sh.password = str(data['data']['password']) + self.sh.filePassword = open(self.sh.verifyPath, 'r').read() + self.init = 0 + else: + if os.path.exists(self.sh.verifyPath): + if self.sh.filePassword == self.sh.password: + self.shell.send(str(data['data'])) - def handleClose(self): - try: - try: - os.remove(self.verifyPath) - except: - pass - self.running = 0 - except BaseException as msg: - print('%s. [WebTerminalServer.handleClose]' % (str(msg))) - pass + except BaseException as msg: + print('%s. [WebTerminalServer.handleMessage]' % (str(msg))) + def on_close(self): + print('connection closed') + + def check_origin(self, origin): + return True + +application = tornado.web.Application([ + (r'/', WSHandler), +]) if __name__ == "__main__": - pidfile = '/usr/local/CyberCP/WebTerminal/pid' - writeToFile = open(pidfile, 'w') - writeToFile.write(str(os.getpid())) - writeToFile.close() + pidfile = '/usr/local/CyberCP/WebTerminal/pid' - SSHServer.findSSHPort() + writeToFile = open(pidfile, 'w') + writeToFile.write(str(os.getpid())) + writeToFile.close() - print ('SSH Port is set to: %s' % (str(SSHServer.DEFAULT_PORT))) + http_server = tornado.httpserver.HTTPServer(application, ssl_options={ + "certfile": "/usr/local/lscp/conf/cert.pem", + "keyfile": "/usr/local/lscp/conf/key.pem", + }, ) - server = SimpleSSLWebSocketServer('0.0.0.0', '5678', WebTerminalServer, '/usr/local/lscp/conf/cert.pem', '/usr/local/lscp/conf/key.pem', version=ssl.PROTOCOL_TLSv1) + ADDR = '0.0.0.0' + http_server.listen(5678, ADDR) + print('*** Websocket Server Started at %s***' % ADDR) - def close_sig_handler(signal, frame): - server.close() - sys.exit() + import signal + def close_sig_handler(signal, frame): + http_server.stop() + sys.exit() - print('server started') + signal.signal(signal.SIGINT, close_sig_handler) - signal.signal(signal.SIGINT, close_sig_handler) - server.serveforever() \ No newline at end of file + tornado.ioloop.IOLoop.instance().start() \ No newline at end of file diff --git a/plogical/test.py b/plogical/test.py index 886dcd95e..e69de29bb 100755 --- a/plogical/test.py +++ b/plogical/test.py @@ -1,154 +0,0 @@ -import tornado.httpserver -import tornado.websocket -import tornado.ioloop -import tornado.web -import socket#!/usr/local/CyberCP/bin/python -import sys -import os -sys.path.append('/usr/local/CyberCP') -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") -from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging -import paramiko -import os -import json -import threading as multi -import time -import asyncio -''' -This is a simple Websocket Echo server that uses the Tornado websocket handler. -Please run `pip install tornado` with python of version 2.7.9 or greater to install tornado. -This program will echo back the reverse of whatever it recieves. -Messages are output to the terminal for debuggin purposes. -''' - - -class SSHServer(multi.Thread): - OKGREEN = '\033[92m' - ENDC = '\033[0m' - - DEFAULT_PORT = 22 - - @staticmethod - def findSSHPort(): - try: - sshData = open('/etc/ssh/sshd_config', 'r').readlines() - - for items in sshData: - if items.find('Port') > -1: - if items[0] == 0: - pass - else: - SSHServer.DEFAULT_PORT = int(items.split(' ')[1]) - except BaseException as msg: - logging.writeToFile('%s. [SSHServer.findSSHPort]' % (str(msg))) - - def loadPublicKey(self): - pubkey = '/root/.ssh/cyberpanel.pub' - data = open(pubkey, 'r').read() - authFile = '/root/.ssh/authorized_keys' - - checker = 1 - - try: - authData = open(authFile, 'r').read() - if authData.find(data) > -1: - checker = 0 - except: - pass - - if checker: - writeToFile = open(authFile, 'a') - writeToFile.writelines(data) - writeToFile.close() - - def __init__(self, websocket): - multi.Thread.__init__(self) - self.sshclient = paramiko.SSHClient() - self.sshclient.load_system_host_keys() - self.sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - k = paramiko.RSAKey.from_private_key_file('/root/.ssh/cyberpanel') - - ## Load Public Key - self.loadPublicKey() - - self.sshclient.connect('127.0.0.1', SSHServer.DEFAULT_PORT, username='root', pkey=k) - self.shell = self.sshclient.invoke_shell(term='xterm') - self.shell.settimeout(0) - - self.websocket = websocket - self.color = 0 - - def recvData(self): - asyncio.set_event_loop(asyncio.new_event_loop()) - while True: - try: - if self.websocket.running: - if os.path.exists(self.verifyPath) and self.filePassword == self.password: - if self.shell.recv_ready(): - self.websocket.write_message(self.shell.recv(9000).decode("utf-8")) - else: - time.sleep(0.001) - else: - return 0 - else: - return 0 - except BaseException as msg: - print('%s. [recvData]' % str(msg)) - time.sleep(0.001) - - def run(self): - try: - self.recvData() - except BaseException as msg: - print('%s. [SSHServer.run]' % (str(msg))) - - -class WSHandler(tornado.websocket.WebSocketHandler): - - def open(self): - print('connected') - self.running = 1 - self.sh = SSHServer(self) - self.shell = self.sh.shell - self.sh.start() - self.init = 1 - print('connect ok') - - def on_message(self, message): - try: - print('handle message') - data = json.loads(message) - - if self.init: - self.sh.verifyPath = str(data['data']['verifyPath']) - self.sh.password = str(data['data']['password']) - self.sh.filePassword = open(self.sh.verifyPath, 'r').read() - self.init = 0 - else: - if os.path.exists(self.sh.verifyPath): - if self.sh.filePassword == self.sh.password: - self.shell.send(str(data['data'])) - - except BaseException as msg: - print('%s. [WebTerminalServer.handleMessage]' % (str(msg))) - - def on_close(self): - print('connection closed') - - def check_origin(self, origin): - return True - - -application = tornado.web.Application([ - (r'/', WSHandler), -]) - -if __name__ == "__main__": - http_server = tornado.httpserver.HTTPServer(application, ssl_options={ - "certfile": "/usr/local/lscp/conf/cert.pem", - "keyfile": "/usr/local/lscp/conf/key.pem", - }, ) - ADDR = '0.0.0.0' - http_server.listen(5678, ADDR) - print('*** Websocket Server Started at %s***' % ADDR) - tornado.ioloop.IOLoop.instance().start() \ No newline at end of file diff --git a/requirments.txt b/requirments.txt index 154583392..782ee27b8 100755 --- a/requirments.txt +++ b/requirments.txt @@ -52,7 +52,7 @@ PyYAML==3.10 requests==2.18.4 requests-file==1.4.3 s3transfer==0.1.13 -SimpleWebSocketServer==0.1.1 +tornado==6.0.4 six==1.13.0 sqlparse==0.3.0 tldextract==2.2.0 From eabe6309476d84ef1663084f162fbdf10724c979 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 13:57:09 +0500 Subject: [PATCH 233/240] update paramiko version --- requirments.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirments.txt b/requirments.txt index 782ee27b8..e75ebfd01 100755 --- a/requirments.txt +++ b/requirments.txt @@ -31,7 +31,7 @@ jsonpointer==1.9 MarkupSafe==0.19 mock==2.0.0 mysqlclient==1.4.6 -paramiko==2.6.0 +paramiko==2.7.1 parsedatetime==2.4 pbr==4.0.4 pexpect==4.4.0 From 277b222b237c4df832f96ff7bbb6424389589083 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 14:16:25 +0500 Subject: [PATCH 234/240] minor fix in install --- cyberpanel.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cyberpanel.sh b/cyberpanel.sh index 1f5721acd..0d050a3b6 100644 --- a/cyberpanel.sh +++ b/cyberpanel.sh @@ -1019,7 +1019,13 @@ fi if [[ $debug == "1" ]] ; then - pip3.6 install --ignore-installed /usr/local/pip-packs/* + + if [[ $UBUNTU_20 == "False" ]] ; then + pip3.6 install --ignore-installed /usr/local/pip-packs/* + else + pip3.6 install --ignore-installed /usr/local/packages/* + fi + if [[ $REDIS_HOSTING == "Yes" ]] ; then /usr/local/CyberPanel/bin/python install.py $SERVER_IP $SERIAL_NO $LICENSE_KEY --postfix $POSTFIX_VARIABLE --powerdns $POWERDNS_VARIABLE --ftp $PUREFTPD_VARIABLE --redis enable else From 51474fe125abef27fbb8490d6467c1495ee8fd88 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 19:30:22 +0500 Subject: [PATCH 235/240] create user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cliParser.py | 8 ++++++ cli/cyberPanel.py | 56 ++++++++++++++++++++++++++++++++++++++++++ userManagment/views.py | 13 +++++++--- 3 files changed, 74 insertions(+), 3 deletions(-) diff --git a/cli/cliParser.py b/cli/cliParser.py index 3fae89593..b4db61a48 100755 --- a/cli/cliParser.py +++ b/cli/cliParser.py @@ -54,4 +54,12 @@ class cliParser: parser.add_argument('--userName', help='Email Username.') parser.add_argument('--password', help='Email password.') + ### Additional Arguments for user manager + + parser.add_argument('--firstName', help='First name while creating user.') + parser.add_argument('--lastName', help='First name while creating user.') + parser.add_argument('--websitesLimit', help='Website limit while creating user.') + parser.add_argument('--selectedACL', help='Select ACL while creating user.') + parser.add_argument('--securityLevel', help='Set security level while creating user.') + return parser.parse_args() \ No newline at end of file diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index e2e6c98c7..9336ba78a 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -24,6 +24,7 @@ from plogical.ftpUtilities import FTPUtilities from plogical.sslUtilities import sslUtilities from plogical.processUtilities import ProcessUtilities from plogical.backupSchedule import backupSchedule +from django.http import HttpRequest # All that we see or seem is but a dream within a dream. @@ -1323,6 +1324,61 @@ def main(): currentversion = version + '.' + build print (currentversion) + ### User Functions + + elif args.function == "createUser": + + completeCommandExample = 'cyberpanel createUser --firstName Cyber --lastName Panel --email email@cyberpanel.net --userName cyberpanel --password securepassword --websitesLimit 10 --selectedACL user --securityLevel HIGH' + + if not args.firstName: + print("\n\nPlease enter First Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.lastName: + print("\n\nPlease enter Last Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.email: + print("\n\nPlease enter Email. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.userName: + print("\n\nPlease enter User name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.password: + print("\n\nPlease enter password. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.websitesLimit: + print("\n\nPlease enter website limit. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.selectedACL: + print("\n\nPlease enter select acl. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.securityLevel: + print("\n\nPlease set security level. For example:\n\n" + completeCommandExample + "\n\n") + return + + from userManagment.views import submitUserCreation + + data = {} + data['firstName'] = args.firstName + data['lastName'] = args.lastName + data['email'] = args.email + data['userName'] = args.userName + data['password'] = args.password + data['websitesLimit'] = args.websitesLimit + data['selectedACL'] = args.selectedACL + data['securityLevel'] = args.securityLevel + data['userID'] = 1 + + response = submitUserCreation(data) + + print(response.content.decode()) + if __name__ == "__main__": diff --git a/userManagment/views.py b/userManagment/views.py index 803d35e4f..f500ee26a 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -126,10 +126,16 @@ def submitUserCreation(request): try: try: - userID = request.session['userID'] - currentACL = ACLManager.loadedACL(userID) + try: + userID = request.session['userID'] + currentACL = ACLManager.loadedACL(userID) + data = json.loads(request.body) + except: + userID = request['userID'] + data = request + currentACL = ACLManager.loadedACL(userID) + - data = json.loads(request.body) firstName = data['firstName'] lastName = data['lastName'] email = data['email'] @@ -137,6 +143,7 @@ def submitUserCreation(request): password = data['password'] websitesLimit = data['websitesLimit'] selectedACL = data['selectedACL'] + try: securityLevel = data['securityLevel'] except: From 461f4828978b11a64871f2ef002477fdba3797b3 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 19:36:36 +0500 Subject: [PATCH 236/240] delete user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cyberPanel.py | 19 +++++++++++++++- userManagment/views.py | 50 +++++++++++++++++++++++------------------- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index 9336ba78a..5ff419469 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -24,7 +24,6 @@ from plogical.ftpUtilities import FTPUtilities from plogical.sslUtilities import sslUtilities from plogical.processUtilities import ProcessUtilities from plogical.backupSchedule import backupSchedule -from django.http import HttpRequest # All that we see or seem is but a dream within a dream. @@ -1379,6 +1378,24 @@ def main(): print(response.content.decode()) + elif args.function == "deleteUser": + + completeCommandExample = 'cyberpanel deleteUser --userName cyberpanel' + + if not args.userName: + print("\n\nPlease enter User Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + from userManagment.views import submitUserDeletion + + data = {} + data['accountUsername'] = args.userName + data['userID'] = 1 + + response = submitUserDeletion(data) + + print(response.content.decode()) + if __name__ == "__main__": diff --git a/userManagment/views.py b/userManagment/views.py index f500ee26a..6bb9d1b0c 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -255,7 +255,6 @@ def modifyUsers(request): except KeyError: return redirect(loadLoginPage) - def fetchUserDetails(request): try: val = request.session['userID'] @@ -316,7 +315,6 @@ def fetchUserDetails(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) - def saveModifications(request): try: val = request.session['userID'] @@ -386,7 +384,6 @@ def saveModifications(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) - def deleteUser(request): try: userID = request.session['userID'] @@ -405,38 +402,45 @@ def deleteUser(request): except KeyError: return redirect(loadLoginPage) - def submitUserDeletion(request): + try: - userID = request.session['userID'] + try: + userID = request.session['userID'] + except: + userID = request['userID'] try: - if request.method == 'POST': + try: data = json.loads(request.body) - accountUsername = data['accountUsername'] + except: + data = request - currentACL = ACLManager.loadedACL(userID) + accountUsername = data['accountUsername'] - currentUser = Administrator.objects.get(pk=userID) - userInQuestion = Administrator.objects.get(userName=accountUsername) + currentACL = ACLManager.loadedACL(userID) - if ACLManager.checkUserOwnerShip(currentACL, currentUser, userInQuestion): - user = Administrator.objects.get(userName=accountUsername) + currentUser = Administrator.objects.get(pk=userID) + userInQuestion = Administrator.objects.get(userName=accountUsername) - childUsers = Administrator.objects.filter(owner=user.pk) + if ACLManager.checkUserOwnerShip(currentACL, currentUser, userInQuestion): + user = Administrator.objects.get(userName=accountUsername) - for items in childUsers: - items.delete() + childUsers = Administrator.objects.filter(owner=user.pk) - user.delete() + for items in childUsers: + items.delete() + + user.delete() + + data_ret = {'status': 1, 'deleteStatus': 1, 'error_message': 'None'} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + else: + data_ret = {'status': 0, 'deleteStatus': 0, 'error_message': 'Not enough privileges.'} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) - data_ret = {'status': 1, 'deleteStatus': 1, 'error_message': 'None'} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) - else: - data_ret = {'status': 0, 'deleteStatus': 0, 'error_message': 'Not enough privileges.'} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) except BaseException as msg: data_ret = {'status': 0, 'deleteStatus': 0, 'error_message': str(msg)} From 6e4c4e13e789632952dfadc0f973df583a9fc3e9 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Mon, 1 Jun 2020 19:40:43 +0500 Subject: [PATCH 237/240] list user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cyberPanel.py | 11 +++++++++++ userManagment/views.py | 18 ++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index 5ff419469..349ecb015 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -1396,6 +1396,17 @@ def main(): print(response.content.decode()) + elif args.function == "listUsers": + + from userManagment.views import fetchTableUsers + + data = {} + data['userID'] = 1 + + response = fetchTableUsers(data) + + print(response.content.decode()) + if __name__ == "__main__": diff --git a/userManagment/views.py b/userManagment/views.py index 6bb9d1b0c..52215ae22 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -452,7 +452,6 @@ def submitUserDeletion(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) - def createNewACL(request): try: userID = request.session['userID'] @@ -465,7 +464,6 @@ def createNewACL(request): except KeyError: return redirect(loadLoginPage) - def createACLFunc(request): try: val = request.session['userID'] @@ -558,7 +556,6 @@ def createACLFunc(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def deleteACL(request): try: userID = request.session['userID'] @@ -572,7 +569,6 @@ def deleteACL(request): except KeyError: return redirect(loadLoginPage) - def deleteACLFunc(request): try: val = request.session['userID'] @@ -599,7 +595,6 @@ def deleteACLFunc(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def modifyACL(request): try: userID = request.session['userID'] @@ -613,7 +608,6 @@ def modifyACL(request): except KeyError: return redirect(loadLoginPage) - def fetchACLDetails(request): try: val = request.session['userID'] @@ -705,7 +699,6 @@ def fetchACLDetails(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def submitACLModifications(request): try: val = request.session['userID'] @@ -811,7 +804,6 @@ def submitACLModifications(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def changeUserACL(request): try: userID = request.session['userID'] @@ -833,7 +825,6 @@ def changeUserACL(request): except KeyError: return redirect(loadLoginPage) - def changeACLFunc(request): try: val = request.session['userID'] @@ -874,7 +865,6 @@ def changeACLFunc(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def resellerCenter(request): try: userID = request.session['userID'] @@ -897,7 +887,6 @@ def resellerCenter(request): except KeyError: return redirect(loadLoginPage) - def saveResellerChanges(request): try: val = request.session['userID'] @@ -954,7 +943,6 @@ def saveResellerChanges(request): json_data = json.dumps(finalResponse) return HttpResponse(json_data) - def listUsers(request): try: userID = request.session['userID'] @@ -987,10 +975,12 @@ def listUsers(request): except KeyError: return redirect(loadLoginPage) - def fetchTableUsers(request): try: - userID = request.session['userID'] + try: + userID = request.session['userID'] + except: + userID = request['userID'] currentACL = ACLManager.loadedACL(userID) From 6758dcce99e57277cba00d7f24e176c768e29749 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 2 Jun 2020 15:49:08 +0500 Subject: [PATCH 238/240] suspend/unsuspend user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cliParser.py | 1 + cli/cyberPanel.py | 26 ++++++++++++-- userManagment/views.py | 77 +++++++++++++++++++++++------------------- 3 files changed, 67 insertions(+), 37 deletions(-) diff --git a/cli/cliParser.py b/cli/cliParser.py index b4db61a48..a6e6752b0 100755 --- a/cli/cliParser.py +++ b/cli/cliParser.py @@ -61,5 +61,6 @@ class cliParser: parser.add_argument('--websitesLimit', help='Website limit while creating user.') parser.add_argument('--selectedACL', help='Select ACL while creating user.') parser.add_argument('--securityLevel', help='Set security level while creating user.') + parser.add_argument('--state', help='State value used in user suspension.') return parser.parse_args() \ No newline at end of file diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index 349ecb015..f4ca95b53 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -1399,14 +1399,36 @@ def main(): elif args.function == "listUsers": from userManagment.views import fetchTableUsers - data = {} data['userID'] = 1 - response = fetchTableUsers(data) print(response.content.decode()) + elif args.function == "suspendUser": + + completeCommandExample = 'cyberpanel suspendUser --userName cyberpanel --state SUSPEND' + + if not args.userName: + print("\n\nPlease enter User Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.state: + print("\n\nPlease enter state value i.e SUSPEND/UnSuspend. For example:\n\n" + completeCommandExample + "\n\n") + return + + from userManagment.views import controlUserState + + data = {} + data['accountUsername'] = args.userName + data['state'] = args.state + data['userID'] = 1 + + response = controlUserState(data) + + print(response.content.decode()) + + if __name__ == "__main__": diff --git a/userManagment/views.py b/userManagment/views.py index 52215ae22..8105734d1 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -1029,50 +1029,57 @@ def fetchTableUsers(request): def controlUserState(request): try: - val = request.session['userID'] try: - if request.method == 'POST': + val = request.session['userID'] + except: + val = request['userID'] + try: + try: data = json.loads(request.body) - accountUsername = data['accountUsername'] - state = data['state'] + except: + data = request - user = Administrator.objects.get(userName=accountUsername) + accountUsername = data['accountUsername'] + state = data['state'] - currentACL = ACLManager.loadedACL(val) - loggedUser = Administrator.objects.get(pk=val) + user = Administrator.objects.get(userName=accountUsername) - if currentACL['admin'] == 1: - pass - elif user.owner == loggedUser.pk: - pass - elif user.pk == loggedUser.pk: - pass - else: - data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) + currentACL = ACLManager.loadedACL(val) + loggedUser = Administrator.objects.get(pk=val) - if state == 'SUSPEND': - user.state = 'SUSPENDED' - else: - user.state = 'ACTIVE' - - user.save() - - extraArgs = {} - extraArgs['user'] = user - extraArgs['currentACL'] = ACLManager.loadedACL(user.pk) - extraArgs['state'] = state - - from userManagment.userManager import UserManager - - um = UserManager('controlUserState', extraArgs) - um.start() - - data_ret = {'status': 1} + if currentACL['admin'] == 1: + pass + elif user.owner == loggedUser.pk: + pass + elif user.pk == loggedUser.pk: + pass + else: + data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) + if state == 'SUSPEND': + user.state = 'SUSPENDED' + else: + user.state = 'ACTIVE' + + user.save() + + extraArgs = {} + extraArgs['user'] = user + extraArgs['currentACL'] = ACLManager.loadedACL(user.pk) + extraArgs['state'] = state + + from userManagment.userManager import UserManager + + um = UserManager('controlUserState', extraArgs) + um.start() + + data_ret = {'status': 1} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + except BaseException as msg: data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) From 7e0733dd7740240bcdbdf33d9a1166efa8f9b963 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 2 Jun 2020 15:57:02 +0500 Subject: [PATCH 239/240] Edit user: ref https://github.com/usmannasir/cyberpanel/issues/335 --- cli/cyberPanel.py | 43 +++++++++++++++++ userManagment/views.py | 106 +++++++++++++++++++++-------------------- 2 files changed, 98 insertions(+), 51 deletions(-) diff --git a/cli/cyberPanel.py b/cli/cyberPanel.py index f4ca95b53..b04273bf5 100755 --- a/cli/cyberPanel.py +++ b/cli/cyberPanel.py @@ -1428,6 +1428,49 @@ def main(): print(response.content.decode()) + elif args.function == "editUser": + + completeCommandExample = 'cyberpanel editUser --userName cyberpanel --firstName Cyber --lastName Panel --email email@cyberpanel.net --password securepassword --securityLevel HIGH' + + if not args.firstName: + print("\n\nPlease enter First Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.lastName: + print("\n\nPlease enter Last Name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.email: + print("\n\nPlease enter Email. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.userName: + print("\n\nPlease enter User name. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.password: + print("\n\nPlease enter password. For example:\n\n" + completeCommandExample + "\n\n") + return + + if not args.securityLevel: + print("\n\nPlease set security level. For example:\n\n" + completeCommandExample + "\n\n") + return + + from userManagment.views import saveModifications + + data = {} + data['accountUsername'] = args.userName + data['firstName'] = args.firstName + data['lastName'] = args.lastName + data['email'] = args.email + data['passwordByPass'] = args.password + data['securityLevel'] = args.securityLevel + data['userID'] = 1 + + response = saveModifications(data) + + print(response.content.decode()) + diff --git a/userManagment/views.py b/userManagment/views.py index 8105734d1..0d7da486f 100755 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -32,7 +32,6 @@ def loadUserHome(request): except KeyError: return redirect(loadLoginPage) - def viewProfile(request): try: userID = request.session['userID'] @@ -52,7 +51,6 @@ def viewProfile(request): except KeyError: return redirect(loadLoginPage) - def createUser(request): try: userID = request.session['userID'] @@ -74,7 +72,6 @@ def createUser(request): logging.CyberCPLogFileWriter.writeToFile(str(msg)) return redirect(loadLoginPage) - def apiAccess(request): try: userID = request.session['userID'] @@ -317,63 +314,70 @@ def fetchUserDetails(request): def saveModifications(request): try: - val = request.session['userID'] try: - if request.method == 'POST': + val = request.session['userID'] + except: + val = request['userID'] + try: + try: data = json.loads(request.body) - accountUsername = data['accountUsername'] - firstName = data['firstName'] - lastName = data['lastName'] - email = data['email'] - try: - securityLevel = data['securityLevel'] - except: - securityLevel = 'HIGH' + except: + data = request - user = Administrator.objects.get(userName=accountUsername) + accountUsername = data['accountUsername'] + firstName = data['firstName'] + lastName = data['lastName'] + email = data['email'] + try: + securityLevel = data['securityLevel'] + except: + securityLevel = 'HIGH' - currentACL = ACLManager.loadedACL(val) - loggedUser = Administrator.objects.get(pk=val) + user = Administrator.objects.get(userName=accountUsername) - if currentACL['admin'] == 1: - pass - elif user.owner == loggedUser.pk: - pass - elif user.pk == loggedUser.pk: - pass - else: - data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'} - json_data = json.dumps(data_ret) - return HttpResponse(json_data) + currentACL = ACLManager.loadedACL(val) + loggedUser = Administrator.objects.get(pk=val) - token = hashPassword.generateToken(accountUsername, data['passwordByPass']) - password = hashPassword.hash_password(data['passwordByPass']) - - user.firstName = firstName - user.lastName = lastName - user.email = email - user.password = password - user.token = token - user.type = 0 - - if securityLevel == 'LOW': - user.securityLevel = secMiddleware.LOW - else: - user.securityLevel = secMiddleware.HIGH - - user.save() - - adminEmailPath = '/home/cyberpanel/adminEmail' - - if accountUsername == 'admin': - writeToFile = open(adminEmailPath, 'w') - writeToFile.write(email) - writeToFile.close() - - data_ret = {'status': 1, 'saveStatus': 1, 'error_message': 'None'} + if currentACL['admin'] == 1: + pass + elif user.owner == loggedUser.pk: + pass + elif user.pk == loggedUser.pk: + pass + else: + data_ret = {'fetchStatus': 0, 'error_message': 'Un-authorized access.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) + token = hashPassword.generateToken(accountUsername, data['passwordByPass']) + password = hashPassword.hash_password(data['passwordByPass']) + + user.firstName = firstName + user.lastName = lastName + user.email = email + user.password = password + user.token = token + user.type = 0 + + if securityLevel == 'LOW': + user.securityLevel = secMiddleware.LOW + else: + user.securityLevel = secMiddleware.HIGH + + user.save() + + adminEmailPath = '/home/cyberpanel/adminEmail' + + if accountUsername == 'admin': + writeToFile = open(adminEmailPath, 'w') + writeToFile.write(email) + writeToFile.close() + + data_ret = {'status': 1, 'saveStatus': 1, 'error_message': 'None'} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + + except BaseException as msg: data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) From a15adb5ca7fe0286797c15860f7fc5cc8cfc6ba7 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Tue, 2 Jun 2020 18:42:24 +0500 Subject: [PATCH 240/240] collect static --- static/WebTerminal/main.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/static/WebTerminal/main.js b/static/WebTerminal/main.js index f7443fdbe..248737afc 100644 --- a/static/WebTerminal/main.js +++ b/static/WebTerminal/main.js @@ -73,16 +73,6 @@ function connect() { if (remember) { store(options) } - // if (check()) { - // openTerminal(options) - // } else { - // for (var key in validResult) { - // if (!validResult[key]) { - // alert(errorMsg[key]); - // break; - // } - // } - // } openTerminal(options) }