From 293399c59adb3aebef68197090a1b210ce1e1b3a Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Sun, 12 Jan 2020 12:45:35 +0500 Subject: [PATCH] bug fix: download via fm --- .../static/filemanager/js/fileManager.js | 6 ++-- filemanager/views.py | 28 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/filemanager/static/filemanager/js/fileManager.js b/filemanager/static/filemanager/js/fileManager.js index 067739616..69790bc3a 100755 --- a/filemanager/static/filemanager/js/fileManager.js +++ b/filemanager/static/filemanager/js/fileManager.js @@ -1481,10 +1481,10 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader, $scope.downloadFile = function () { - url = "/filemanager/downloadFile"; + url = "/filemanager/downloadFile/"; var downloadURL = $scope.currentPath + "/" + allFilesAndFolders[0]; - var indexPublicHTML = downloadURL.indexOf("public_html") + 11; - $window.location.href = '/preview/' + domainName + downloadURL.slice(indexPublicHTML); + + window.location.href = url + '?domainName=' + domainName + '?downloadURL=' + downloadURL; }; diff --git a/filemanager/views.py b/filemanager/views.py index 5170b8151..8e1852528 100755 --- a/filemanager/views.py +++ b/filemanager/views.py @@ -81,18 +81,26 @@ def changePermissions(request): def downloadFile(request): try: + userID = request.session['userID'] + admin = Administrator.objects.get(pk=userID) - data = json.loads(request.body) - fileToDownload = data['fileToDownload'] + fileToDownload = '/home/cyberpanel.xyz/public_html/hello.txt' + domainName = 'cyberpanel.xyz' - response = '' - if os.path.isfile(fileToDownload): - try: - with open(fileToDownload, 'rb') as f: - response = HttpResponse(f.read(), content_type="application/octet-stream") - response['Content-Disposition'] = 'inline; filename=' + os.path.basename(fileToDownload) - except Exception as e: - raise Http404 + currentACL = ACLManager.loadedACL(userID) + + if ACLManager.checkOwnership(domainName, admin, currentACL) == 1: + pass + else: + return ACLManager.loadErrorJson('permissionsChanged', 0) + + logging.CyberCPLogFileWriter.writeToFile('test') + + response = HttpResponse(content_type='application/force-download') + response['Content-Disposition'] = 'attachment; filename=%s' % (fileToDownload.split('/')[-1]) + response['X-LiteSpeed-Location'] = '%s' % (fileToDownload) + + logging.CyberCPLogFileWriter.writeToFile('test 2') return response except KeyError: