diff --git a/filemanager/filemanager.py b/filemanager/filemanager.py index 9a6cc3046..62c7abdc4 100755 --- a/filemanager/filemanager.py +++ b/filemanager/filemanager.py @@ -318,6 +318,22 @@ class FileManager: website = Websites.objects.get(domain=domainName) self.homePath = '/home/%s' % (domainName) + RemoveOK = 1 + + command = 'touch %s/hello.txt' % (self.homePath) + result = ProcessUtilities.outputExecutioner(command) + + if result.find('No such file or directory') > -1: + RemoveOK = 0 + + command = 'chattr -R -i %s' % (self.homePath) + ProcessUtilities.executioner(command) + + else: + command = 'rm -f %s/hello.txt' % (self.homePath) + ProcessUtilities.executioner(command) + + for item in self.data['fileAndFolders']: if (self.data['path'] + '/' + item).find('..') > -1 or (self.data['path'] + '/' + item).find( @@ -326,7 +342,7 @@ class FileManager: if skipTrash: command = 'rm -rf ' + self.returnPathEnclosed(self.data['path'] + '/' + item) - ProcessUtilities.executioner(command, website.externalApp) + ProcessUtilities.outputExecutioner(command, website.externalApp) else: trashPath = '%s/.trash' % (self.homePath) @@ -339,6 +355,10 @@ class FileManager: command = 'mv %s %s' % (self.returnPathEnclosed(self.data['path'] + '/' + item), trashPath) ProcessUtilities.executioner(command, website.externalApp) + if RemoveOK == 0: + command = 'chattr -R +i %s' % (self.homePath) + ProcessUtilities.executioner(command) + json_data = json.dumps(finalData) return HttpResponse(json_data) diff --git a/packages/packagesManager.py b/packages/packagesManager.py index 30f5045f8..c0c46ea28 100755 --- a/packages/packagesManager.py +++ b/packages/packagesManager.py @@ -151,7 +151,7 @@ class PackagesManager: data_ret = {'emails': emails, 'modifyStatus': 1, 'error_message': "None", "diskSpace": diskSpace, "bandwidth": bandwidth, "ftpAccounts": ftpAccounts, - "dataBases": dataBases, "allowedDomains": modifyPack.allowedDomains, 'allowFullDomain': modifyPack.allowFullDomain} + "dataBases": dataBases, "allowedDomains": modifyPack.allowedDomains, 'allowFullDomain': modifyPack.allowFullDomain, 'enforceDiskLimits': modifyPack.enforceDiskLimits} json_data = json.dumps(data_ret) return HttpResponse(json_data) @@ -193,6 +193,10 @@ class PackagesManager: except: modifyPack.allowFullDomain = 1 + try: + modifyPack.enforceDiskLimits = int(data['enforceDiskLimits']) + except: + modifyPack.enforceDiskLimits = 0 modifyPack.save() @@ -255,7 +259,8 @@ class PackagesManager: 'dataBases': items.dataBases, 'ftpAccounts': items.ftpAccounts, 'allowedDomains': items.allowedDomains, - 'allowFullDomain': items.allowFullDomain + 'allowFullDomain': items.allowFullDomain, + 'enforceDiskLimits': items.enforceDiskLimits } if checker == 0: diff --git a/packages/static/packages/packages.js b/packages/static/packages/packages.js index 2b5e22f1d..2c1658325 100755 --- a/packages/static/packages/packages.js +++ b/packages/static/packages/packages.js @@ -197,7 +197,6 @@ app.controller('modifyPackages', function ($scope, $http) { $("#successfullyModified").hide(); var packageName = $scope.packageToBeModified; - console.log(packageName); url = "/packages/submitModify"; @@ -234,11 +233,8 @@ app.controller('modifyPackages', function ($scope, $http) { $scope.emails = response.data.emails; $scope.allowedDomains = response.data.allowedDomains; - if (response.data.allowFullDomain === 1) { - $scope.allowFullDomain = true; - } else { - $scope.allowFullDomain = false; - } + $scope.allowFullDomain = response.data.allowFullDomain === 1; + $scope.enforceDiskLimits = response.data.enforceDiskLimits === 1; $scope.modifyButton = "Save Details"; @@ -260,7 +256,6 @@ app.controller('modifyPackages', function ($scope, $http) { }; - $scope.modifyPackageFunc = function () { var packageName = $scope.packageToBeModified; @@ -286,7 +281,8 @@ app.controller('modifyPackages', function ($scope, $http) { dataBases: dataBases, emails: emails, allowedDomains: $scope.allowedDomains, - allowFullDomain: $scope.allowFullDomain + allowFullDomain: $scope.allowFullDomain, + enforceDiskLimits: $scope.enforceDiskLimits, }; var config = { @@ -446,7 +442,7 @@ app.controller('listPackageTables', function ($scope, $http) { }; $scope.editInitial = function (package, diskSpace, bandwidth, - emailAccounts, dataBases, ftpAccounts, allowedDomains, allowFullDomain) { + emailAccounts, dataBases, ftpAccounts, allowedDomains, allowFullDomain, enforceDiskLimits) { $scope.name = package; $scope.diskSpace = diskSpace; $scope.bandwidth = bandwidth; @@ -455,12 +451,8 @@ app.controller('listPackageTables', function ($scope, $http) { $scope.ftpAccounts = ftpAccounts; $scope.allowedDomains = allowedDomains; $scope.allowFullDomain = allowFullDomain; - - if (allowFullDomain === 1) { - $scope.allowFullDomain = true; - } else { - $scope.allowFullDomain = false; - } + $scope.allowFullDomain = allowFullDomain === 1; + $scope.enforceDiskLimits = enforceDiskLimits === 1; }; $scope.saveChanges = function () { @@ -482,7 +474,8 @@ app.controller('listPackageTables', function ($scope, $http) { dataBases: dataBases, emails: emails, allowedDomains: $scope.allowedDomains, - allowFullDomain: $scope.allowFullDomain + allowFullDomain: $scope.allowFullDomain, + enforceDiskLimits: $scope.enforceDiskLimits, }; var config = { diff --git a/packages/templates/packages/listPackages.html b/packages/templates/packages/listPackages.html index da195d6ac..a6ff09ef7 100755 --- a/packages/templates/packages/listPackages.html +++ b/packages/templates/packages/listPackages.html @@ -55,7 +55,7 @@