diff --git a/cloudAPI/cloudManager.py b/cloudAPI/cloudManager.py index bfc5ebdb0..87b20170b 100644 --- a/cloudAPI/cloudManager.py +++ b/cloudAPI/cloudManager.py @@ -25,6 +25,9 @@ from s3Backups.s3Backups import S3Backups from serverLogs.views import getLogsFromFile from serverStatus.views import topProcessesStatus, killProcess from websiteFunctions.models import Websites +from plogical import hashPassword +from loginSystem.models import ACL +from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging class CloudManager: @@ -64,6 +67,37 @@ class CloudManager: def submitWebsiteCreation(self): try: + + try: + selectedACL = ACL.objects.get(name='user') + UserAccountName = self.data['UserAccountName'] + UserPassword = self.data['UserPassword'] + FullName = self.data['FullName'] + token = hashPassword.generateToken(UserAccountName, UserPassword) + password = hashPassword.hash_password(UserPassword) + + try: + newAdmin = Administrator(firstName=FullName, + lastName="", + email=self.data['adminEmail'], + type=3, + userName=UserAccountName, + password=password, + initWebsitesLimit=10, + owner=1, + acl=selectedACL, + token=token + ) + newAdmin.save() + except BaseException, msg: + logging.writeToFile(str(msg)) + admin = Administrator.objects.get(userName=UserAccountName) + admin.token = token + admin.password = password + admin.save() + except BaseException, msg: + logging.writeToFile(str(msg)) + wm = WebsiteManager() return wm.submitWebsiteCreation(self.admin.pk, self.data) except BaseException, msg: @@ -636,6 +670,7 @@ class CloudManager: def submitPackageDelete(self, request): try: + request.session['userID'] = self.admin.pk pm = PackagesManager(request) return pm.submitDelete() except BaseException, msg: @@ -643,6 +678,7 @@ class CloudManager: def submitPackageModify(self, request): try: + request.session['userID'] = self.admin.pk pm = PackagesManager(request) return pm.saveChanges() except BaseException, msg: @@ -1257,5 +1293,13 @@ class CloudManager: request.session['userID'] = self.admin.pk s3 = S3Backups(request, self.data, 'deleteDomainFromPlanMINIO') return s3.deleteDomainFromPlanMINIO() + except BaseException, msg: + return self.ajaxPre(0, str(msg)) + + def submitWebsiteStatus(self, request): + try: + request.session['userID'] = self.admin.pk + wm = WebsiteManager() + return wm.submitWebsiteStatus(self.admin.pk, self.data) except BaseException, msg: return self.ajaxPre(0, str(msg)) \ No newline at end of file diff --git a/cloudAPI/views.py b/cloudAPI/views.py index d4b09a974..dff97f043 100644 --- a/cloudAPI/views.py +++ b/cloudAPI/views.py @@ -266,6 +266,8 @@ def router(request): return cm.fetchBackupLogsMINIO(request) elif controller == 'deleteDomainFromPlanMINIO': return cm.deleteDomainFromPlanMINIO(request) + elif controller == 'submitWebsiteStatus': + return cm.submitWebsiteStatus(request) else: return cm.ajaxPre(0, 'This function is not available in your version of CyberPanel.') diff --git a/install/install.py b/install/install.py index f5b0ef4e5..c641800b2 100644 --- a/install/install.py +++ b/install/install.py @@ -1089,7 +1089,11 @@ class preFlightsChecks: preFlightsChecks.call(command, self.distro, '[fixCyberPanelPermissions]', 'Change permissions for client.', 1, 0, os.EX_OSERR) - command = "chmod 600 /usr/local/CyberCP/CyberCP/settings.py" + command = "chmod 640 /usr/local/CyberCP/CyberCP/settings.py" + preFlightsChecks.call(command, self.distro, '[fixCyberPanelPermissions]', + 'Change permissions for client.', 1, 0, os.EX_OSERR) + + command = "chown root:cyberpanel /usr/local/CyberCP/CyberCP/settings.py" preFlightsChecks.call(command, self.distro, '[fixCyberPanelPermissions]', 'Change permissions for client.', 1, 0, os.EX_OSERR) diff --git a/plogical/apiAccess.py b/plogical/apiAccess.py new file mode 100644 index 000000000..6d4cb1c4e --- /dev/null +++ b/plogical/apiAccess.py @@ -0,0 +1,18 @@ +#!/usr/local/CyberCP/bin/python2 +import os.path +import sys +import django +sys.path.append('/usr/local/CyberCP') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") +django.setup() +from loginSystem.models import Administrator, ACL + +def main(): + admin = Administrator.objects.get(pk=1) + admin.api = 1 + admin.save() + + print("API Access Enabled") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 58e2691e3..554ae6afd 100644 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1244,6 +1244,9 @@ class Upgrade: except: pass + 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' + Upgrade.executioner(command, 'generate cyberpanel ssl', 0) + command = 'adduser lscpd -M -d /usr/local/lscp' Upgrade.executioner(command, 'Add user LSCPD', 0) @@ -1320,9 +1323,6 @@ class Upgrade: command = "chown -R root:root /usr/local/lscp" Upgrade.executioner(command, 'chown core code', 0) - 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' - Upgrade.executioner(command, 'generate cyberpanel ssl', 0) - command = "chown -R lscpd:lscpd /usr/local/lscp/cyberpanel/rainloop/data" Upgrade.executioner(command, 'chown core code', 0) @@ -1335,7 +1335,10 @@ class Upgrade: command = "chmod 700 /usr/local/CyberCP/postfixSenderPolicy/client.py" Upgrade.executioner(command, 'chown core code', 0) - command = "chmod 600 /usr/local/CyberCP/CyberCP/settings.py" + command = "chmod 640 /usr/local/CyberCP/CyberCP/settings.py" + Upgrade.executioner(command, 'chown core code', 0) + + command = "chown root:cyberpanel /usr/local/CyberCP/CyberCP/settings.py" Upgrade.executioner(command, 'chown core code', 0) Upgrade.stdOut("Permissions updated.") diff --git a/plogical/virtualHostUtilities.py b/plogical/virtualHostUtilities.py index 32049a76a..3d95e3153 100644 --- a/plogical/virtualHostUtilities.py +++ b/plogical/virtualHostUtilities.py @@ -1001,7 +1001,10 @@ class virtualHostUtilities: data = [int(totalUsageInMB), int(percentage)] return data except BaseException: - return [int(totalUsageInMB), int(0)] + try: + return [int(totalUsageInMB), int(0)] + except: + return [int(0), int(0)] @staticmethod def permissionControl(path):