change acl permissions to json

This commit is contained in:
Usman Nasir
2021-02-21 13:09:50 +05:00
parent a333adcaf7
commit 44d1558af2
12 changed files with 141 additions and 69 deletions

View File

@@ -6,6 +6,21 @@
app.controller('backupWebsiteControl', function ($scope, $http, $timeout) {
$(document).ready(function () {
$(".destinationHide").hide();
$('#create-backup-select').select2();
});
$('#create-backup-select').on('select2:select', function (e) {
var data = e.params.data;
$scope.websiteToBeBacked = data.text;
$(".destinationHide").show();
getBackupStatus();
populateCurrentRecords();
$scope.destination = false;
$scope.runningBackup = true;
});
$scope.destination = true;
$scope.backupButton = true;
$scope.backupLoading = true;
@@ -43,7 +58,6 @@ app.controller('backupWebsiteControl', function ($scope, $http, $timeout) {
};
function getBackupStatus() {
$scope.backupLoadingBottom = false;
@@ -111,12 +125,10 @@ app.controller('backupWebsiteControl', function ($scope, $http, $timeout) {
};
$scope.destinationSelection = function () {
$scope.backupButton = false;
};
function populateCurrentRecords() {
var websiteToBeBacked = $scope.websiteToBeBacked;
@@ -152,7 +164,6 @@ app.controller('backupWebsiteControl', function ($scope, $http, $timeout) {
};
$scope.createBackup = function () {
var websiteToBeBacked = $scope.websiteToBeBacked;
@@ -189,10 +200,8 @@ app.controller('backupWebsiteControl', function ($scope, $http, $timeout) {
};
$scope.deleteBackup = function (id) {
url = "/backup/deleteBackup";
var data = {

View File

@@ -29,7 +29,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Select Website" %} </label>
<div class="col-sm-6">
<select ng-change="fetchDetails()" ng-model="websiteToBeBacked" class="form-control">
<select id="create-backup-select" ng-model="websiteToBeBacked" class="form-control">
{% for items in websiteList %}
<option>{{ items }}</option>
{% endfor %}
@@ -37,7 +37,7 @@
</div>
</div>
<div ng-hide="destination" class="form-group">
<div class="form-group destinationHide">
<label class="col-sm-3 control-label">{% trans "Destination" %}</label>
<div class="col-sm-6">
<select ng-change="destinationSelection()" ng-model="backupDestinations" class="form-control">
@@ -75,7 +75,7 @@
<!---- if Back up is running------>
<div ng-hide="backupButton" class="form-group">
<div class="form-group destinationHide">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="createBackup()" class="btn btn-primary btn-lg btn-block">{% trans "Create Back up" %}</button>

View File

@@ -14,7 +14,6 @@
</div>
<!--- Hide statistics for non-admins--->
<div class="mx-10 col-lg-9 panel col-md-push-50">

View File

@@ -75,19 +75,10 @@
<!-- HELPERS -->
{% with version="2.0.4" %}
<link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBase.css' %}">
<!-- ELEMENTS -->
<!-- ICONS -->
<!-- WIDGETS -->
<!-- SNIPPETS -->
<!-- APPLICATIONS -->
<!-- Admin theme -->
<link rel="stylesheet" type="text/css" href="{% static 'baseTemplate/assets/finalBase/finalBaseTheme.css' %}">
<link rel="stylesheet" type="text/css" href="/static/baseTemplate/assets/themes/admin/layout.css">
@@ -965,34 +956,36 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrious/4.0.2/qrious.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script src="{% static 'baseTemplate/custom-js/pnotify.custom.min.js' %}"></script>
<script src="{% static 'baseTemplate/custom-js/system-status.js' %}"></script>
<script src="{% static 'packages/packages.js' %}"></script>
<script src="{% static 'websiteFunctions/websiteFunctions.js' %}"></script>
<script src="{% static 'tuning/tuning.js' %}"></script>
<script src="{% static 'serverStatus/serverStatus.js' %}"></script>
<script src="{% static 'dns/dns.js' %}"></script>
<script src="{% static 'ftp/ftp.js' %}"></script>
<script src="{% static 'userManagment/userManagment.js' %}"></script>
<script src="{% static 'databases/databases.js' %}"></script>
<script src="{% static 'mailServer/mailServer.js' %}"></script>
<script src="{% static 'serverLogs/serverLogs.js' %}"></script>
<script src="{% static 'emailPremium/emailPremium.js' %}"></script>
<script src="{% static 'emailMarketing/emailMarketing.js' %}"></script>
<script src="{% static 'baseTemplate/custom-js/system-status.js' %}?ver={{ version }}"></script>
<script src="{% static 'packages/packages.js' %}?ver={{ version }}"></script>
<script src="{% static 'websiteFunctions/websiteFunctions.js' %}?ver={{ version }}"></script>
<script src="{% static 'tuning/tuning.js' %}?ver={{ version }}"></script>
<script src="{% static 'serverStatus/serverStatus.js' %}?ver={{ version }}"></script>
<script src="{% static 'dns/dns.js' %}?ver={{ version }}"></script>
<script src="{% static 'ftp/ftp.js' %}?ver={{ version }}"></script>
<script src="{% static 'userManagment/userManagment.js' %}?ver={{ version }}"></script>
<script src="{% static 'databases/databases.js' %}?ver={{ version }}"></script>
<script src="{% static 'mailServer/mailServer.js' %}?ver={{ version }}"></script>
<script src="{% static 'serverLogs/serverLogs.js' %}?ver={{ version }}"></script>
<script src="{% static 'emailPremium/emailPremium.js' %}?ver={{ version }}"></script>
<script src="{% static 'emailMarketing/emailMarketing.js' %}?ver={{ version }}"></script>
<script type="text/javascript" src="{% static 'baseTemplate/assets/finalJS/final.js' %}"></script>
<script src="{% static 'backup/backup.js' %}"></script>
<script src="{% static 'managePHP/managePHP.js' %}"></script>
<script src="{% static 'backup/backup.js' %}?ver={{ version }}"></script>
<script src="{% static 'managePHP/managePHP.js' %}?ver={{ version }}"></script>
<script src="{% static 'baseTemplate/bootstrap-toggle.min.js' %}"></script>
<script src="{% static 'firewall/firewall.js' %}"></script>
<script src="{% static 'manageSSL/manageSSL.js' %}"></script>
<script src="{% static 'manageServices/manageServices.js' %}"></script>
<script src="{% static 'dockerManager/dockerManager.js' %}"></script>
<script src="{% static 'containerization/containerization.js' %}"></script>
<script src="{% static 'CLManager/CLManager.js' %}"></script>
<script src="{% static 'IncBackups/IncBackups.js' %}"></script>
<script src="{% static 'WebTerminal/term.js' %}"></script>
<script src="{% static 'WebTerminal/ws.js' %}"></script>
<script src="{% static 'WebTerminal/main.js' %}"></script>
<script src="{% static 'firewall/firewall.js' %}?ver={{ version }}"></script>
<script src="{% static 'manageSSL/manageSSL.js' %}?ver={{ version }}"></script>
<script src="{% static 'manageServices/manageServices.js' %}?ver={{ version }}"></script>
<script src="{% static 'dockerManager/dockerManager.js' %}?ver={{ version }}"></script>
<script src="{% static 'containerization/containerization.js' %}?ver={{ version }}"></script>
<script src="{% static 'CLManager/CLManager.js' %}?ver={{ version }}"></script>
<script src="{% static 'IncBackups/IncBackups.js' %}?ver={{ version }}"></script>
<script src="{% static 'WebTerminal/term.js' %}?ver={{ version }}"></script>
<script src="{% static 'WebTerminal/ws.js' %}?ver={{ version }}"></script>
<script src="{% static 'WebTerminal/main.js' %}?ver={{ version }}"></script>
{% endwith %}
</div>
{% block footer_scripts %}

View File

@@ -72,6 +72,9 @@ class ACL(models.Model):
manageSSL = models.IntegerField(default=1)
hostnameSSL = models.IntegerField(default=0)
mailServerSSL = models.IntegerField(default=0)
config = models.TextField(default='{}')
class Administrator(models.Model):
userName = models.CharField(unique=True,max_length = 50)

0
plogical/acl.py Executable file → Normal file
View File

View File

@@ -9,6 +9,27 @@ class httpProc:
self.templateName = templateName
self.data = data
def render(self):
try:
userID = self.request.session['userID']
admin = self.data['admin']
###
if self.data == None:
self.data = {}
self.data['fullName'] = admin.fullName
self.data['ownerEmail'] = admin.email
return render(self.request, self.templateName, self.data)
except BaseException as msg:
templateName = 'UserManagement/login.html'
return render(self.request, templateName)
def renderPre(self):
if self.data == None:
return render(self.request, self.templateName)
@@ -42,3 +63,6 @@ class httpProc:
final_json = json.dumps(final_dic)
return HttpResponse(final_json)

0
plogical/test.py Executable file → Normal file
View File

0
plogical/test1.py Executable file → Normal file
View File

View File

@@ -2,6 +2,7 @@ import os
import os.path
import sys
import argparse
sys.path.append('/usr/local/CyberCP')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
import shlex
@@ -19,12 +20,40 @@ BUILD = 3
CENTOS7 = 0
CENTOS8 = 1
class Upgrade:
logPath = "/usr/local/lscp/logs/upgradeLog"
cdn = 'cdn.cyberpanel.sh'
installedOutput = ''
CentOSPath = '/etc/redhat-release'
AdminACL = '{"adminStatus":1, "versionManagement": 1, "createNewUser": 1, "listUsers": 1, "deleteUser":1 , "resellerCenter": 1, ' \
'"changeUserACL": 1, "createWebsite": 1, "modifyWebsite": 1, "suspendWebsite": 1, "deleteWebsite": 1, ' \
'"createPackage": 1, "listPackages": 1, "deletePackage": 1, "modifyPackage": 1, "createDatabase": 1, "deleteDatabase": 1, ' \
'"listDatabases": 1, "createNameServer": 1, "createDNSZone": 1, "deleteZone": 1, "addDeleteRecords": 1, ' \
'"createEmail": 1, "listEmails": 1, "deleteEmail": 1, "emailForwarding": 1, "changeEmailPassword": 1, ' \
'"dkimManager": 1, "createFTPAccount": 1, "deleteFTPAccount": 1, "listFTPAccounts": 1, "createBackup": 1,' \
' "restoreBackup": 1, "addDeleteDestinations": 1, "scheDuleBackups": 1, "remoteBackups": 1, "googleDriveBackups": 1, "manageSSL": 1, ' \
'"hostnameSSL": 1, "mailServerSSL": 1 }'
ResellerACL = '{"adminStatus":0, "versionManagement": 1, "createNewUser": 1, "listUsers": 1, "deleteUser": 1 , "resellerCenter": 1, ' \
'"changeUserACL": 0, "createWebsite": 1, "modifyWebsite": 1, "suspendWebsite": 1, "deleteWebsite": 1, ' \
'"createPackage": 1, "listPackages": 1, "deletePackage": 1, "modifyPackage": 1, "createDatabase": 1, "deleteDatabase": 1, ' \
'"listDatabases": 1, "createNameServer": 1, "createDNSZone": 1, "deleteZone": 1, "addDeleteRecords": 1, ' \
'"createEmail": 1, "listEmails": 1, "deleteEmail": 1, "emailForwarding": 1, "changeEmailPassword": 1, ' \
'"dkimManager": 1, "createFTPAccount": 1, "deleteFTPAccount": 1, "listFTPAccounts": 1, "createBackup": 1,' \
' "restoreBackup": 1, "addDeleteDestinations": 0, "scheDuleBackups": 0, "remoteBackups": 0, "googleDriveBackups": 1, "manageSSL": 1, ' \
'"hostnameSSL": 0, "mailServerSSL": 0 }'
UserACL = '{"adminStatus":0, "versionManagement": 1, "createNewUser": 0, "listUsers": 0, "deleteUser": 0 , "resellerCenter": 0, ' \
'"changeUserACL": 0, "createWebsite": 0, "modifyWebsite": 0, "suspendWebsite": 0, "deleteWebsite": 0, ' \
'"createPackage": 0, "listPackages": 0, "deletePackage": 0, "modifyPackage": 0, "createDatabase": 1, "deleteDatabase": 1, ' \
'"listDatabases": 1, "createNameServer": 0, "createDNSZone": 1, "deleteZone": 1, "addDeleteRecords": 1, ' \
'"createEmail": 1, "listEmails": 1, "deleteEmail": 1, "emailForwarding": 1, "changeEmailPassword": 1, ' \
'"dkimManager": 1, "createFTPAccount": 1, "deleteFTPAccount": 1, "listFTPAccounts": 1, "createBackup": 1,' \
' "restoreBackup": 0, "addDeleteDestinations": 0, "scheDuleBackups": 0, "remoteBackups": 0, "googleDriveBackups": 1, "manageSSL": 1, ' \
'"hostnameSSL": 0, "mailServerSSL": 0 }'
@staticmethod
def decideCentosVersion():
@@ -615,6 +644,26 @@ imap_folder_list_limit = 0
except:
pass
try:
cursor.execute('ALTER TABLE loginSystem_acl ADD config longtext')
except:
pass
try:
cursor.execute("UPDATE loginSystem_administrator SET config = '%s' where userName = 'admin'" % (Upgrade.AdminACL))
except:
pass
try:
cursor.execute("UPDATE loginSystem_administrator SET config = '%s' where userName = 'reseller'" % (Upgrade.ResellerACL))
except:
pass
try:
cursor.execute("UPDATE loginSystem_administrator SET config = '%s' where userName = 'user'" % (Upgrade.UserACL))
except:
pass
try:
cursor.execute("alter table loginSystem_administrator drop initUserAccountsLimit")
except:
@@ -660,7 +709,6 @@ imap_folder_list_limit = 0
except:
pass
try:
cursor.execute("ALTER TABLE loginSystem_acl ADD COLUMN listUsers INT DEFAULT 0;")
except:
@@ -716,7 +764,6 @@ imap_folder_list_limit = 0
except:
pass
query = """CREATE TABLE `websiteFunctions_normalbackupsites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`domain_id` int(11) NOT NULL,
@@ -733,7 +780,6 @@ imap_folder_list_limit = 0
except:
pass
query = """CREATE TABLE `websiteFunctions_normalbackupjoblogs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`status` int(11) NOT NULL,
@@ -1215,6 +1261,11 @@ imap_folder_list_limit = 0
except:
pass
try:
cursor.execute('ALTER TABLE loginSystem_acl ADD config longtext')
except:
pass
try:
cursor.execute('ALTER TABLE dockerManager_containers ADD volumes longtext')
except:
@@ -1484,7 +1535,6 @@ imap_folder_list_limit = 0
except:
pass
query = """CREATE TABLE `websiteFunctions_backupjoblogs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`message` longtext NOT NULL,
@@ -1630,7 +1680,8 @@ imap_folder_list_limit = 0
command = 'git status'
currentBranch = subprocess.check_output(shlex.split(command)).decode()
if currentBranch.find('On branch %s' % (branch)) > -1 and currentBranch.find('On branch %s-dev' % (branch)) == -1:
if currentBranch.find('On branch %s' % (branch)) > -1 and currentBranch.find(
'On branch %s-dev' % (branch)) == -1:
command = 'git stash'
Upgrade.executioner(command, command, 1)
@@ -1664,7 +1715,6 @@ imap_folder_list_limit = 0
command = 'git pull'
Upgrade.executioner(command, command, 1)
## Copy settings file
settingsData = open(settingsFile, 'r').readlines()
@@ -1906,9 +1956,12 @@ echo $oConfig->Save() ? 'Done' : 'Error';
command = 'chmod +x /usr/local/CyberCP/CLManager/CLPackages.py'
Upgrade.executioner(command, command, 0)
clScripts = ['/usr/local/CyberCP/CLScript/panel_info.py', '/usr/local/CyberCP/CLScript/CloudLinuxPackages.py',
'/usr/local/CyberCP/CLScript/CloudLinuxUsers.py', '/usr/local/CyberCP/CLScript/CloudLinuxDomains.py'
,'/usr/local/CyberCP/CLScript/CloudLinuxResellers.py', '/usr/local/CyberCP/CLScript/CloudLinuxAdmins.py',
clScripts = ['/usr/local/CyberCP/CLScript/panel_info.py',
'/usr/local/CyberCP/CLScript/CloudLinuxPackages.py',
'/usr/local/CyberCP/CLScript/CloudLinuxUsers.py',
'/usr/local/CyberCP/CLScript/CloudLinuxDomains.py'
, '/usr/local/CyberCP/CLScript/CloudLinuxResellers.py',
'/usr/local/CyberCP/CLScript/CloudLinuxAdmins.py',
'/usr/local/CyberCP/CLScript/CloudLinuxDB.py', '/usr/local/CyberCP/CLScript/UserInfo.py']
for items in clScripts:
@@ -1937,7 +1990,6 @@ echo $oConfig->Save() ? 'Done' : 'Error';
command = '/usr/local/lsws/lsphp72/bin/php /usr/local/CyberCP/public/rainloop.php'
Upgrade.executioner(command, 0)
Upgrade.stdOut("Permissions updated.")
except BaseException as msg:
@@ -2031,7 +2083,6 @@ echo $oConfig->Save() ? 'Done' : 'Error';
command = 'dnf install --enablerepo=gf-plus dovecot23 dovecot23-mysql -y'
Upgrade.executioner(command, 0)
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
django.setup()
@@ -2080,7 +2131,6 @@ echo $oConfig->Save() ? 'Done' : 'Error';
## Restored
command = 'systemctl restart postfix'
Upgrade.executioner(command, 0)
@@ -2089,7 +2139,7 @@ echo $oConfig->Save() ? 'Done' : 'Error';
dovecotContent = open(dovecotConf, 'r').read()
if dovecotContent.find('service stats') == -1:
writeToFile = open(dovecotConf, 'a')
writeToFile = open(dovecotConf, 'a')
content = """\nservice stats {
unix_listener stats-reader {
@@ -2175,7 +2225,6 @@ service_port = 9000
writeToFile.write(content)
writeToFile.close()
command = 'mkdir -p /etc/cagefs/exclude'
Upgrade.executioner(command, command, 0)
@@ -2279,11 +2328,9 @@ vmail
command = 'apt list'
Upgrade.installedOutput = subprocess.check_output(shlex.split(command)).decode()
command = 'systemctl stop cpssh'
Upgrade.executioner(command, 'fix csf if there', 0)
## Add LSPHP7.4 TO LSWS Ent configs
if not os.path.exists('/usr/local/lsws/bin/openlitespeed'):
@@ -2293,8 +2340,8 @@ vmail
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')
#shutil.copy('httpd_config.xml', '/usr/local/lsws/conf/httpd_config.xml')
# os.remove('/usr/local/lsws/conf/httpd_config.xml')
# shutil.copy('httpd_config.xml', '/usr/local/lsws/conf/httpd_config.xml')
postfixPath = '/home/cyberpanel/postfix'
pdns = '/home/cyberpanel/pdns'
@@ -2309,7 +2356,6 @@ vmail
## Current Version
command = "systemctl stop lscpd"
Upgrade.executioner(command, 'stop lscpd', 0)
@@ -2344,7 +2390,7 @@ vmail
##
#Upgrade.setupVirtualEnv()
# Upgrade.setupVirtualEnv()
##
@@ -2359,7 +2405,7 @@ vmail
Upgrade.someDirectories()
Upgrade.installLSCPD(branch)
Upgrade.GeneralMigrations()
#Upgrade.p3()
# Upgrade.p3()
if os.path.exists(postfixPath):
Upgrade.upgradeDovecot()
@@ -2386,14 +2432,12 @@ vmail
command = 'cp /usr/local/lsws/lsphp73/bin/lsphp %s' % (phpPath)
Upgrade.executioner(command, 0)
try:
command = "systemctl start lscpd"
Upgrade.executioner(command, 'Start LSCPD', 0)
except:
pass
command = 'csf -uf'
Upgrade.executioner(command, 'fix csf if there', 0)
command = 'systemctl start cpssh'

0
plogical/virtualHostUtilities.py Executable file → Normal file
View File

View File