diff --git a/CLManager/static/CLManager/CLManager.js b/CLManager/static/CLManager/CLManager.js index ae17f696c..d2c52ef22 100644 --- a/CLManager/static/CLManager/CLManager.js +++ b/CLManager/static/CLManager/CLManager.js @@ -489,7 +489,6 @@ app.controller('listCloudLinuxPackages', function ($scope, $http) { }); - app.controller('websiteContainerLimitCL', function ($scope, $http, $timeout, $window) { diff --git a/backup/backupManager.py b/backup/backupManager.py index e75e275e5..52d731ee7 100755 --- a/backup/backupManager.py +++ b/backup/backupManager.py @@ -9,7 +9,7 @@ django.setup() import json from plogical.acl import ACLManager import plogical.CyberCPLogFileWriter as logging -from websiteFunctions.models import Websites, Backups, dest, backupSchedules, BackupJob, BackupJobLogs +from websiteFunctions.models import Websites, Backups, dest, backupSchedules, BackupJob, BackupJobLogs, GDrive, GDriveSites, GDriveJobLogs from plogical.virtualHostUtilities import virtualHostUtilities import subprocess import shlex @@ -52,14 +52,49 @@ class BackupManager: try: currentACL = ACLManager.loadedACL(userID) + admin = Administrator.objects.get(pk=userID) + if ACLManager.currentContextPermission(currentACL, 'addDeleteDestinations') == 0: return ACLManager.loadError() - websitesName = ACLManager.findAllSites(currentACL, userID) - return render(request, 'backup/googleDrive.html', {'websiteList': websitesName}) + gDriveAcctsList = [] + + gDriveAccts = admin.gdrive_set.all() + + for items in gDriveAccts: + gDriveAcctsList.append(items.name) + + return render(request, 'backup/googleDrive.html', {'accounts': gDriveAcctsList}) except BaseException as msg: return HttpResponse(str(msg)) + def gDriveSetup(self, userID = None, request = None): + try: + currentACL = ACLManager.loadedACL(userID) + admin = Administrator.objects.get(pk=userID) + + if ACLManager.currentContextPermission(currentACL, 'addDeleteDestinations') == 0: + return ACLManager.loadError() + + gDriveData = {} + gDriveData['name'] = request.GET.get('n') + gDriveData['token'] = request.GET.get('t') + gDriveData['refresh_token'] = request.GET.get('r') + gDriveData['token_uri'] = request.GET.get('to') + gDriveData['client_id'] = request.GET.get('c') + gDriveData['client_secret'] = request.GET.get('cl') + gDriveData['scopes'] = request.GET.get('s') + + gD = GDrive(owner=admin, name=gDriveData['name'],auth=json.dumps(gDriveData)) + gD.save() + + final_json = json.dumps({'status': 1, 'message': 'Successfully saved.'}) + return HttpResponse(final_json) + except BaseException as msg: + final_dic = {'status': 0, 'fetchStatus': 0, 'error_message': str(msg)} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + def restoreSite(self, request = None, userID = None, data = None): try: currentACL = ACLManager.loadedACL(userID) diff --git a/backup/static/backup/backup.js b/backup/static/backup/backup.js index e233a8636..b8336dd87 100755 --- a/backup/static/backup/backup.js +++ b/backup/static/backup/backup.js @@ -1534,6 +1534,7 @@ app.controller('remoteBackupControl', function ($scope, $http, $timeout) { ///** Backup site ends **/// //*** Remote Backup site ****// + app.controller('backupLogsScheduled', function ($scope, $http, $timeout) { $scope.cyberpanelLoading = true; @@ -1595,3 +1596,56 @@ app.controller('backupLogsScheduled', function ($scope, $http, $timeout) { }); ///** Backup site ends **/// + +app.controller('googleDrive', function ($scope, $http) { + + $scope.cyberPanelLoading = true; + + $scope.setupAccount = function(){ + window.open("https://platform.cyberpanel.net/gDrive?name=" + $scope.accountName + '&server=' + window.location.href + 'Setup'); + }; + + $scope.fetchPackageas = function () { + $scope.cyberPanelLoading = false; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + var data = {}; + + + dataurl = "/CloudLinux/fetchPackages"; + + $http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData); + + + function ListInitialData(response) { + $scope.cyberPanelLoading = true; + if (response.data.status === 1) { + $scope.packages = JSON.parse(response.data.data); + } else { + new PNotify({ + title: 'Operation Failed!', + text: response.data.error_message, + type: 'error' + }); + } + } + + function cantLoadInitialData(response) { + $scope.cyberPanelLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); + } + + + }; + + +}); diff --git a/backup/templates/backup/googleDrive.html b/backup/templates/backup/googleDrive.html index 5ab7e5ad9..fb3577434 100755 --- a/backup/templates/backup/googleDrive.html +++ b/backup/templates/backup/googleDrive.html @@ -1,136 +1,99 @@ {% extends "baseTemplate/index.html" %} {% load i18n %} -{% block title %}{% trans "Set up Back up Destinations" %}{% endblock %} +{% block title %}{% trans "Google Drive Backups - CyberPanel" %}{% endblock %} {% block content %} -{% load static %} - - -{% get_current_language as LANGUAGE_CODE %} - - -
{% trans "On this page you can set up your Back up destinations. (SFTP)" %}
-
- {% trans "On this page you can set up and manage Google Drive Backups." %}
{% trans "Setup new Account" %}
+