diff --git a/CLManager/CLManagerMain.py b/CLManager/CLManagerMain.py index 2a02fd91c..a2809033f 100644 --- a/CLManager/CLManagerMain.py +++ b/CLManager/CLManagerMain.py @@ -10,7 +10,7 @@ from django.shortcuts import HttpResponse from math import ceil from websiteFunctions.models import Websites from CLManager.models import CLPackages - +from plogical.httpProc import httpProc class CLManagerMain(multi.Thread): @@ -27,29 +27,14 @@ class CLManagerMain(multi.Thread): self.submitCageFSInstall() elif self.function == 'enableOrDisable': self.enableOrDisable() - except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + ' [ContainerManager.run]') def renderC(self): - userID = self.request.session['userID'] - currentACL = ACLManager.loadedACL(userID) - - if currentACL['admin'] == 1: - pass - else: - return ACLManager.loadError() - - ipFile = "/etc/cyberpanel/machineIP" - f = open(ipFile) - ipData = f.read() - ipAddress = ipData.split('\n', 1)[0] - data = {} data['CL'] = 0 data['activatedPath'] = 0 - data['ipAddress'] = ipAddress CLPath = '/etc/sysconfig/cloudlinux' activatedPath = '/home/cyberpanel/cloudlinux' @@ -60,11 +45,14 @@ class CLManagerMain(multi.Thread): data['activatedPath'] = 1 if data['CL'] == 0: - return render(self.request, 'CLManager/notAvailable.html', data) + proc = httpProc(self.request, 'CLManager/notAvailable.html', data, 'admin') + return proc.render() elif data['activatedPath'] == 0: - return render(self.request, 'CLManager/notAvailable.html', data) + proc = httpProc(self.request, 'CLManager/notAvailable.html', data, 'admin') + return proc.render() else: - return render(self.request, 'CLManager/cloudLinux.html', data) + proc = httpProc(self.request, 'CLManager/cloudLinux.html', data, 'admin') + return proc.render() def submitCageFSInstall(self): try: diff --git a/baseTemplate/templates/baseTemplate/error.html b/baseTemplate/templates/baseTemplate/error.html new file mode 100755 index 000000000..4ccefce2f --- /dev/null +++ b/baseTemplate/templates/baseTemplate/error.html @@ -0,0 +1,42 @@ +{% extends "baseTemplate/index.html" %} +{% load i18n %} +{% block title %}{% trans "Home - CyberPanel" %}{% endblock %} +{% block content %} + + +{% get_current_language as LANGUAGE_CODE %} + + +
+
+

{% trans "Home" %}

+

{% trans "Use the tabs to navigate through the control panel." %}

+
+ + + + +
+
+

+ {% trans "Something went wrong..." %} +

+ +
+
+

Error

+

Error: {{ error_message }}

+
+
+ +
+ +
+ + + + +
+ + +{% endblock %} diff --git a/baseTemplate/templates/baseTemplate/homePage.html b/baseTemplate/templates/baseTemplate/homePage.html index 5e9b74c3c..fb0ec8827 100755 --- a/baseTemplate/templates/baseTemplate/homePage.html +++ b/baseTemplate/templates/baseTemplate/homePage.html @@ -4,28 +4,28 @@ {% block content %} -{% get_current_language as LANGUAGE_CODE %} - + {% get_current_language as LANGUAGE_CODE %} + -
-
-

{% trans "Home" %}

-

{% trans "Use the tabs to navigate through the control panel." %}

-
+
+
+

{% trans "Home" %}

+

{% trans "Use the tabs to navigate through the control panel." %}

+
- + + - -
- - - {% if admin %} -
-
-

- {% trans "Resources" %} -

- -
- -
-
-
-

- {% trans "CPU Usage" %} -

-
-
-
-
- {$ cpuUsage $}% -
-
-
-
-
-
-
-
-
-
- -
-
-

- {% trans "Ram Usage" %} -

-
-
-
-
- {$ ramUsage $}% -
-
-
-
-
-
-
-
-
-
- -
-
-

- {% trans "Disk Usage '/'" %} -

-
-
-
-
- {$ diskUsage $}% -
-
-
-
-
-
-
-
-
-
- -
- -
+ + + {% if admin %} +
+
+

+ {% trans "Resources" %} +

+ +
+ +
+
+
+

+ {% trans "CPU Usage" %} +

+
+
+
+
+ {$ cpuUsage $}% +
+
+
+
+
+
+
+
+
+
+ +
+
+

+ {% trans "Ram Usage" %} +

+
+
+
+
+ {$ ramUsage $}% +
+
+
+
+
+
+
+
+
+
+ +
+
+

+ {% trans "Disk Usage '/'" %} +

+
+
+
+
+ {$ diskUsage $}% +
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ {% endif %} + +
- {% endif %} - - - - -
{% endblock %} diff --git a/baseTemplate/templates/baseTemplate/index.html b/baseTemplate/templates/baseTemplate/index.html index 171a83149..4a5250080 100755 --- a/baseTemplate/templates/baseTemplate/index.html +++ b/baseTemplate/templates/baseTemplate/index.html @@ -344,19 +344,21 @@ {% trans "Dashboard" %} - - - {% trans "Version Management" %} - - - - {% trans "Connect" %} - + {% if admin or versionManagement %} + + + {% trans "Version Management" %} + + + + {% trans "Connect" %} + + {% endif %}
  • {% trans "Main" %}
  • @@ -381,29 +383,31 @@ {% endif %} {% if admin or listUsers %}
  • {% trans "List Users" %} + title="{% trans 'List Users' %}">{% trans "List Users" %}
  • {% endif %}
  • {% trans "Modify User" %}
  • {% if admin or resellerCenter %} -
  • {% trans "Reseller Center" %} -
  • - {% endif %} -
  • {% trans "Create New ACL" %} -
  • -
  • {% trans "Delete ACL" %} -
  • -
  • {% trans "Modify ACL" %} -
  • -
  • {% trans "API Access" %} -
  • +
  • {% trans "Reseller Center" %} +
  • + {% endif %} + {% if admin %} +
  • {% trans "Create New ACL" %} +
  • +
  • {% trans "Delete ACL" %} +
  • +
  • {% trans "Modify ACL" %} +
  • +
  • {% trans "API Access" %} +
  • + {% endif %} @@ -417,24 +421,32 @@ @@ -447,23 +459,30 @@ -
  • @@ -472,19 +491,26 @@ @@ -498,24 +524,36 @@ @@ -529,49 +567,69 @@
  • - + {% trans "FTP" %} @@ -585,24 +643,36 @@ @@ -617,18 +687,26 @@ @@ -643,319 +721,328 @@
  • -
  • {% trans "Server" %}
  • + {% if admin %} +
  • {% trans "Server" %}
  • -
  • - - - {% trans "Web Terminal" %} - {% trans "NEW" %} - -
  • + + + {% trans "Web Terminal" %} + {% trans "NEW" %} + + -
  • + + + -
  • - - - {% trans "CloudLinux" %} - {% trans "NEW" %} - -
  • + + + {% trans "CloudLinux" %} + {% trans "NEW" %} + + -
  • + + +
  • + + + {% trans "Containerization" %} + {% trans "NEW" %} + +
  • - - - {% trans "Containerization" %} - {% trans "NEW" %} - - +
  • - - +
  • + + + {% trans "Docker Manager" %} + {% trans "NEW" %} + +
  • - - - {% trans "Docker Manager" %} - {% trans "NEW" %} - - +
  • - - +
  • + + + {% trans "Tuning" %} + +
  • - - - {% trans "Tuning" %} - - +
  • - - +
  • + + + {% trans "Server Status" %} + +
  • - - - {% trans "Server Status" %} - - +
  • - - +
  • + + + {% trans "PHP" %} + +
  • - - - {% trans "PHP" %} - - +
  • - - +
  • + + + {% trans "Logs" %} + +
  • - - - {% trans "Logs" %} - - +
  • - - +
  • + + + {% trans "Security" %} + +
  • - - - {% trans "Security" %} - - +
  • - - +
  • + + + {% trans "Mail Settings" %} + {% trans "NEW" %} + +
  • - - - {% trans "Mail Settings" %} - {% trans "NEW" %} - - +
  • - - +
  • + + + {% trans "Manage Services" %} + +
  • - - - {% trans "Manage Services" %} - - +
  • - - +
  • + + + {% trans "Plugins" %} + +
  • - - - {% trans "Plugins" %} - - +
  • - - + {% endif %} diff --git a/baseTemplate/views.py b/baseTemplate/views.py index 5e28396ca..74d18de28 100755 --- a/baseTemplate/views.py +++ b/baseTemplate/views.py @@ -88,38 +88,26 @@ def getLoadAverage(request): @ensure_csrf_cookie def versionManagment(request): - try: - userID = request.session['userID'] - currentACL = ACLManager.loadedACL(userID) + ## Get latest version - if currentACL['admin'] == 1: - pass - elif currentACL['versionManagement'] == 1: - pass - else: - return ACLManager.loadError() + getVersion = requests.get('https://cyberpanel.net/version.txt') - ## Get latest version + latest = getVersion.json() - getVersion = requests.get('https://cyberpanel.net/version.txt') + latestVersion = latest['version'] + latestBuild = latest['build'] - latest = getVersion.json() + ## Get local version - latestVersion = latest['version'] - latestBuild = latest['build'] + currentVersion = VERSION + currentBuild = str(BUILD) - ## Get local version + template = 'baseTemplate/versionManagment.html' + finalData = {'build': currentBuild, 'currentVersion': currentVersion, 'latestVersion': latestVersion, + 'latestBuild': latestBuild} - currentVersion = VERSION - currentBuild = str(BUILD) - - return render(request, 'baseTemplate/versionManagment.html', {'build': currentBuild, - 'currentVersion': currentVersion, - 'latestVersion': latestVersion, - 'latestBuild': latestBuild}) - - except KeyError: - return redirect(loadLoginPage) + proc = httpProc(request, template, finalData, 'versionManagement') + return proc.render() def upgrade(request): try: diff --git a/containerization/containerManager.py b/containerization/containerManager.py index 252b810fc..8922516a5 100755 --- a/containerization/containerManager.py +++ b/containerization/containerManager.py @@ -5,7 +5,7 @@ from plogical.acl import ACLManager import plogical.CyberCPLogFileWriter as logging from serverStatus.serverStatusUtil import ServerStatusUtil import os, stat - +from plogical.httpProc import httpProc class ContainerManager(multi.Thread): defaultConf = """group {groupName}{ @@ -84,14 +84,6 @@ class ContainerManager(multi.Thread): def renderC(self): - userID = self.request.session['userID'] - currentACL = ACLManager.loadedACL(userID) - - if currentACL['admin'] == 1: - pass - else: - return ACLManager.loadError() - data = {} data['OLS'] = 0 data['notInstalled'] = 0 @@ -99,17 +91,20 @@ class ContainerManager(multi.Thread): if ProcessUtilities.decideServer() == ProcessUtilities.OLS: data['OLS'] = 1 data['notInstalled'] = 0 - return render(self.request, 'containerization/notAvailable.html', data) + proc = httpProc(self.request, 'containerization/notAvailable.html', data, 'admin') + return proc.render() elif not ProcessUtilities.containerCheck(): data['OLS'] = 0 data['notInstalled'] = 1 - return render(self.request, 'containerization/notAvailable.html', data) + proc = httpProc(self.request, 'containerization/notAvailable.html', data, 'admin') + return proc.render() else: if self.data == None: self.data = {} self.data['OLS'] = 0 self.data['notInstalled'] = 0 - return render(self.request, self.templateName, self.data) + proc = httpProc(self.request, self.templateName, data, 'admin') + return proc.render() def submitContainerInstall(self): try: @@ -165,7 +160,6 @@ class ContainerManager(multi.Thread): # self.data['classID']) + ' protocol ip prio 10 handle 1: cgroup' command = 'sudo tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup' - #logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) self.restartServices() diff --git a/databases/databaseManager.py b/databases/databaseManager.py index 1a85cf5d1..55c11bfb7 100755 --- a/databases/databaseManager.py +++ b/databases/databaseManager.py @@ -5,7 +5,6 @@ import django sys.path.append('/usr/local/CyberCP') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") django.setup() -from django.shortcuts import render from django.http import HttpResponse import json from plogical.acl import ACLManager @@ -16,34 +15,28 @@ from databases.models import Databases, DBMeta import argparse from loginSystem.models import Administrator import plogical.randomPassword as randomPassword +from plogical.httpProc import httpProc class DatabaseManager: REMOTE_ACCESS = 'remote_access' def loadDatabaseHome(self, request = None, userID = None): - try: - return render(request, 'databases/index.html') - except BaseException as msg: - return HttpResponse(str(msg)) + template = 'databases/index.html' + proc = httpProc(request, template, None, 'createDatabase') + return proc.render() def phpMyAdmin(self, request = None, userID = None): - try: - return render(request, 'databases/phpMyAdmin.html') - except BaseException as msg: - return HttpResponse(str(msg)) + template = 'databases/phpMyAdmin.html' + proc = httpProc(request, template, None, 'createDatabase') + return proc.render() def createDatabase(self, request = None, userID = None): - try: - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'createDatabase') == 0: - return ACLManager.loadError() - - websitesName = ACLManager.findAllSites(currentACL, userID) - - return render(request, 'databases/createDatabase.html', {'websitesList': websitesName}) - except BaseException as msg: - return HttpResponse(str(msg)) + currentACL = ACLManager.loadedACL(userID) + websitesName = ACLManager.findAllSites(currentACL, userID) + template = 'databases/createDatabase.html' + proc = httpProc(request, template, {'websitesList': websitesName}, 'createDatabase') + return proc.render() def submitDBCreation(self, userID = None, data = None, rAPI = None): try: @@ -84,18 +77,11 @@ class DatabaseManager: return HttpResponse(json_data) def deleteDatabase(self, request = None, userID = None): - try: - - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'deleteDatabase') == 0: - return ACLManager.loadError() - - websitesName = ACLManager.findAllSites(currentACL, userID) - - return render(request, 'databases/deleteDatabase.html', {'websitesList': websitesName}) - except BaseException as msg: - logging.CyberCPLogFileWriter.writeToFile(str(msg)) - return HttpResponse(str(msg)) + currentACL = ACLManager.loadedACL(userID) + websitesName = ACLManager.findAllSites(currentACL, userID) + template = 'databases/deleteDatabase.html' + proc = httpProc(request, template, {'websitesList': websitesName}, 'deleteDatabase') + return proc.render() def fetchDatabases(self, userID = None, data = None): try: @@ -171,16 +157,11 @@ class DatabaseManager: return HttpResponse(json_data) def listDBs(self, request = None, userID = None): - try: - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'listDatabases') == 0: - return ACLManager.loadError() - - websitesName = ACLManager.findAllSites(currentACL, userID) - - return render(request, 'databases/listDataBases.html', {'websiteList': websitesName}) - except BaseException as msg: - return HttpResponse(str(msg)) + currentACL = ACLManager.loadedACL(userID) + websitesName = ACLManager.findAllSites(currentACL, userID) + template = 'databases/listDataBases.html' + proc = httpProc(request, template, {'websitesList': websitesName}, 'listDatabases') + return proc.render() def changePassword(self, userID = None, data = None): try: diff --git a/dns/dnsManager.py b/dns/dnsManager.py index acdca57a9..05009251c 100755 --- a/dns/dnsManager.py +++ b/dns/dnsManager.py @@ -4,10 +4,10 @@ import errno import os.path import sys import django + sys.path.append('/usr/local/CyberCP') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") django.setup() -from django.shortcuts import render from django.http import HttpResponse import json try: @@ -24,6 +24,7 @@ import CloudFlare import re import plogical.CyberCPLogFileWriter as logging from plogical.processUtilities import ProcessUtilities +from plogical.httpProc import httpProc class DNSManager: defaultNameServersPath = '/home/cyberpanel/defaultNameservers' @@ -37,29 +38,23 @@ class DNSManager: self.email = data[0].rstrip('\n') self.key = data[1].rstrip('\n') - def loadDNSHome(self, request = None, userID = None): - try: - admin = Administrator.objects.get(pk=userID) - return render(request, 'dns/index.html', {"type": admin.type}) - except BaseException as msg: - return HttpResponse(str(msg)) + admin = Administrator.objects.get(pk=userID) + template = 'dns/index.html' + proc = httpProc(request, template, {"type": admin.type}, 'createDNSZone') + return proc.render() def createNameserver(self, request = None, userID = None): - try: - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'createNameServer') == 0: - return ACLManager.loadError() + mailUtilities.checkHome() - mailUtilities.checkHome() + if os.path.exists('/home/cyberpanel/powerdns'): + finalData = {"status": 1} + else: + finalData = {"status": 0} - if os.path.exists('/home/cyberpanel/powerdns'): - return render(request, "dns/createNameServer.html", {"status": 1}) - else: - return render(request, "dns/createNameServer.html", {"status": 0}) - - except BaseException as msg: - return HttpResponse(str(msg)) + template = 'dns/createNameServer.html' + proc = httpProc(request, template, finalData, 'createNameServer') + return proc.render() def NSCreation(self, userID = None, data = None): try: @@ -118,17 +113,13 @@ class DNSManager: return HttpResponse(final_json) def createDNSZone(self, request = None, userID = None): - try: - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'createDNSZone') == 0: - return ACLManager.loadError() - - if os.path.exists('/home/cyberpanel/powerdns'): - return render(request, 'dns/createDNSZone.html', {"status": 1}) - else: - return render(request, 'dns/createDNSZone.html', {"status": 0}) - except BaseException as msg: - return HttpResponse(str(msg)) + if os.path.exists('/home/cyberpanel/powerdns'): + finalData = {'status': 1} + else: + finalData = {'status': 0} + template = 'dns/createDNSZone.html' + proc = httpProc(request, template, finalData, 'createDNSZone') + return proc.render() def zoneCreation(self, userID = None, data = None): try: @@ -166,21 +157,16 @@ class DNSManager: return HttpResponse(final_json) def addDeleteDNSRecords(self, request = None, userID = None): - try: + currentACL = ACLManager.loadedACL(userID) + if not os.path.exists('/home/cyberpanel/powerdns'): + finalData = {"status": 0} + else: + finalData = {"status": 1} - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'addDeleteRecords') == 0: - return ACLManager.loadError() - - if not os.path.exists('/home/cyberpanel/powerdns'): - return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0}) - - domainsList = ACLManager.findAllDomains(currentACL, userID) - - return render(request, 'dns/addDeleteDNSRecords.html', {"domainsList": domainsList, "status": 1}) - - except BaseException as msg: - return HttpResponse(str(msg)) + finalData['domainsList'] = ACLManager.findAllDomains(currentACL, userID) + template = 'dns/addDeleteDNSRecords.html' + proc = httpProc(request, template, finalData, 'addDeleteRecords') + return proc.render() def getCurrentRecordsForDomain(self, userID = None, data = None): try: @@ -499,22 +485,16 @@ class DNSManager: return HttpResponse(final_json) def deleteDNSZone(self, request = None, userID = None): + currentACL = ACLManager.loadedACL(userID) + if not os.path.exists('/home/cyberpanel/powerdns'): + finalData = {"status": 0} + else: + finalData = {"status": 1} - try: - currentACL = ACLManager.loadedACL(userID) - - if ACLManager.currentContextPermission(currentACL, 'deleteZone') == 0: - return ACLManager.loadError() - - if not os.path.exists('/home/cyberpanel/powerdns'): - return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0}) - - domainsList = ACLManager.findAllDomains(currentACL, userID) - - return render(request, 'dns/deleteDNSZone.html', {"domainsList": domainsList, "status": 1}) - - except BaseException as msg: - return HttpResponse(str(msg)) + finalData['domainsList'] = ACLManager.findAllDomains(currentACL, userID) + template = 'dns/deleteDNSZone.html' + proc = httpProc(request, template, finalData, 'deleteZone') + return proc.render() def submitZoneDeletion(self, userID = None, data = None): try: @@ -549,46 +529,36 @@ class DNSManager: return HttpResponse(final_json) def configureDefaultNameServers(self, request=None, userID=None): + currentACL = ACLManager.loadedACL(userID) - try: - currentACL = ACLManager.loadedACL(userID) + if not os.path.exists('/home/cyberpanel/powerdns'): + data = {"status": 0} + else: + data = {"status": 1} - if currentACL['admin'] == 1: + data['domainsList'] = ACLManager.findAllDomains(currentACL, userID) + if os.path.exists(DNSManager.defaultNameServersPath): + nsData = open(DNSManager.defaultNameServersPath, 'r').readlines() + try: + data['firstNS'] = nsData[0].rstrip('\n') + except: + pass + try: + data['secondNS'] = nsData[1].rstrip('\n') + except: + pass + try: + data['thirdNS'] = nsData[2].rstrip('\n') + except: + pass + try: + data['forthNS'] = nsData[3].rstrip('\n') + except: pass - else: - return ACLManager.loadError() - - if not os.path.exists('/home/cyberpanel/powerdns'): - return render(request, 'dns/addDeleteDNSRecords.html', {"status": 0}) - - data = {} - data['domainsList'] = ACLManager.findAllDomains(currentACL, userID) - data['status'] = 1 - - if os.path.exists(DNSManager.defaultNameServersPath): - nsData = open(DNSManager.defaultNameServersPath, 'r').readlines() - try: - data['firstNS'] = nsData[0].rstrip('\n') - except: - pass - try: - data['secondNS'] = nsData[1].rstrip('\n') - except: - pass - try: - data['thirdNS'] = nsData[2].rstrip('\n') - except: - pass - try: - data['forthNS'] = nsData[3].rstrip('\n') - except: - pass - - return render(request, 'dns/configureDefaultNameServers.html', data) - - except BaseException as msg: - return HttpResponse(str(msg)) + template = 'dns/configureDefaultNameServers.html' + proc = httpProc(request, template, data, 'admin') + return proc.render() def saveNSConfigurations(self, userID = None, data = None): try: @@ -615,7 +585,6 @@ class DNSManager: except: pass - writeToFile = open(DNSManager.defaultNameServersPath, 'w') writeToFile.write(nsContent.rstrip('\n')) writeToFile.close() @@ -631,35 +600,30 @@ class DNSManager: return HttpResponse(final_json) def addDeleteDNSRecordsCloudFlare(self, request = None, userID = None): - try: + currentACL = ACLManager.loadedACL(userID) + if not os.path.exists('/home/cyberpanel/powerdns'): + status = 0 + else: + status = 1 + admin = Administrator.objects.get(pk=userID) - currentACL = ACLManager.loadedACL(userID) - if ACLManager.currentContextPermission(currentACL, 'addDeleteRecords') == 0: - return ACLManager.loadError() + CloudFlare = 0 - if not os.path.exists('/home/cyberpanel/powerdns'): - return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html', {"status": 0}) + cfPath = '%s%s' % (DNS.CFPath, admin.userName) - admin = Administrator.objects.get(pk=userID) + if os.path.exists(cfPath): + CloudFlare = 1 + domainsList = ACLManager.findAllDomains(currentACL, userID) + self.admin = admin + self.loadCFKeys() + data = {"domainsList": domainsList, "status": status, 'CloudFlare': CloudFlare, 'cfEmail': self.email, + 'cfToken': self.key} + else: + data = {"status": status, 'CloudFlare': CloudFlare} - CloudFlare = 0 - - cfPath = '%s%s' %(DNS.CFPath, admin.userName) - - if os.path.exists(cfPath): - CloudFlare = 1 - domainsList = ACLManager.findAllDomains(currentACL, userID) - - self.admin = admin - self.loadCFKeys() - - return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html', - {"domainsList": domainsList, "status": 1, 'CloudFlare': CloudFlare, 'cfEmail': self.email, 'cfToken': self.key}) - else: - return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html', {"status": 1, 'CloudFlare': CloudFlare}) - - except BaseException as msg: - return HttpResponse(str(msg)) + template = 'dns/addDeleteDNSRecordsCloudFlare.html' + proc = httpProc(request, template, data, 'addDeleteRecords') + return proc.render() def saveCFConfigs(self, userID = None, data = None): try: diff --git a/plogical/acl.py b/plogical/acl.py index bb2436806..36dd7a3a9 100644 --- a/plogical/acl.py +++ b/plogical/acl.py @@ -71,14 +71,12 @@ class ACLManager: finalResponse['serverIPAddress'] = serverIPAddress finalResponse['adminName'] = admin.firstName - if admin.acl.adminStatus == 1: + config = json.loads(admin.acl.config) + + if config['adminStatus']: finalResponse['admin'] = 1 else: finalResponse['admin'] = 0 - - config = json.loads(admin.acl.config) - - acl = ACL.objects.get(name=admin.acl.name) finalResponse['versionManagement'] = config['versionManagement'] ## User Management diff --git a/plogical/httpProc.py b/plogical/httpProc.py index c4b980a81..81b1714de 100755 --- a/plogical/httpProc.py +++ b/plogical/httpProc.py @@ -2,12 +2,14 @@ from django.shortcuts import render, HttpResponse import json +from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter class httpProc: - def __init__(self, request, templateName, data = None): + def __init__(self, request, templateName, data = None, function = None): self.request = request self.templateName = templateName self.data = data + self.function = function def render(self): @@ -15,19 +17,33 @@ class httpProc: from loginSystem.models import Administrator from plogical.acl import ACLManager userID = self.request.session['userID'] - admin = Administrator.objects.get(pk=userID) + currentACL = ACLManager.loadedACL(userID) + + ### Permissions Check + + if self.function != None: + if not currentACL['admin']: + if not currentACL[self.function]: + templateName = 'baseTemplate/error.html' + return render(self.request, templateName, {'error_message': 'You are not authorized to access %s' % (self.function)}) ### if self.data == None: self.data = {} - self.data.update(ACLManager.loadedACL(userID)) - return render(self.request, self.templateName, self.data) + ipFile = "/etc/cyberpanel/machineIP" + f = open(ipFile) + ipData = f.read() + ipAddress = ipData.split('\n', 1)[0] + self.data['ipAddress'] = ipAddress + self.data.update(currentACL) + + return render(self.request, self.templateName, self.data) except BaseException as msg: - templateName = 'UserManagement/login.html' - return render(self.request, templateName) + templateName = 'baseTemplate/error.html' + return render(self.request, templateName, {'error_message': str(msg)}) def renderPre(self): if self.data == None: diff --git a/static/userManagment/userManagment.js b/static/userManagment/userManagment.js index 2dfc503b2..221d0e34b 100644 --- a/static/userManagment/userManagment.js +++ b/static/userManagment/userManagment.js @@ -458,6 +458,7 @@ app.controller('deleteUser', function ($scope, $http) { /* Java script code to create acl */ + app.controller('createACLCTRL', function ($scope, $http) { $scope.aclLoading = true; @@ -520,11 +521,13 @@ app.controller('createACLCTRL', function ($scope, $http) { // Backup Management $scope.createBackup = true; + $scope.googleDriveBackups = true; $scope.restoreBackup = false; $scope.addDeleteDestinations = false; $scope.scheDuleBackups = false; $scope.remoteBackups = false; + // SSL Management $scope.manageSSL = true; @@ -599,6 +602,7 @@ app.controller('createACLCTRL', function ($scope, $http) { // Backup Management createBackup: $scope.createBackup, + googleDriveBackups: $scope.googleDriveBackups, restoreBackup: $scope.restoreBackup, addDeleteDestinations: $scope.addDeleteDestinations, scheDuleBackups: $scope.scheDuleBackups, @@ -976,6 +980,7 @@ app.controller('modifyACLCtrl', function ($scope, $http) { // Backup Management $scope.createBackup = Boolean(response.data.createBackup); + $scope.googleDriveBackups = Boolean(response.data.googleDriveBackups); $scope.restoreBackup = Boolean(response.data.restoreBackup); $scope.addDeleteDestinations = Boolean(response.data.addDeleteDestinations); $scope.scheDuleBackups = Boolean(response.data.scheDuleBackups); @@ -1076,6 +1081,7 @@ app.controller('modifyACLCtrl', function ($scope, $http) { // Backup Management createBackup: $scope.createBackup, + googleDriveBackups: $scope.googleDriveBackups, restoreBackup: $scope.restoreBackup, addDeleteDestinations: $scope.addDeleteDestinations, scheDuleBackups: $scope.scheDuleBackups,