s3keysaved

This commit is contained in:
Hassan Hashmi
2022-06-29 15:41:05 +05:00
parent 12ecf2dd24
commit aa24855963
3 changed files with 220 additions and 82 deletions

View File

@@ -1961,9 +1961,11 @@ app.controller('RestoreWPBackup', function ($scope, $http, $timeout, $window) {
function DeleteBackupConfigNow(url) { function DeleteBackupConfigNow(url) {
window.location.href = url; window.location.href = url;
} }
function DeleteRemoteBackupsiteNow(url) { function DeleteRemoteBackupsiteNow(url) {
window.location.href = url; window.location.href = url;
} }
function DeleteBackupfileConfigNow(url) { function DeleteBackupfileConfigNow(url) {
window.location.href = url; window.location.href = url;
} }
@@ -1972,15 +1974,47 @@ function DeleteBackupfileConfigNow(url) {
app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) { app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) {
$scope.RemoteBackupLoading = true; $scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true; $scope.SFTPBackUpdiv = true;
$scope.S3backupdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
$scope.SelectRemoteBackuptype = function () { $scope.SelectRemoteBackuptype = function () {
var val = $scope.RemoteBackuptype; var val = $scope.RemoteBackuptype;
if (val == "SFTP") { if (val == "SFTP") {
$scope.SFTPBackUpdiv = false; $scope.SFTPBackUpdiv = false;
$scope.S3backupdiv = true; $scope.EndpointURLdiv = true;
} else { $scope.Selectprovider = true;
$scope.S3backupdiv = false; $scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
} else if (val == "S3") {
$scope.EndpointURLdiv = true;
$scope.Selectprovider = false;
$scope.S3keyNamediv = false;
$scope.Accesskeydiv = false;
$scope.SecretKeydiv = false;
$scope.SFTPBackUpdiv = true; $scope.SFTPBackUpdiv = true;
} else {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
}
}
$scope.SelectProvidertype = function () {
$scope.EndpointURLdiv = true;
var provider = $scope.Providervalue
if (provider == 'Backblaze') {
$scope.EndpointURLdiv = false;
} else {
$scope.EndpointURLdiv = true;
} }
} }
@@ -1991,16 +2025,39 @@ app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window)
var Passwd = $scope.Password; var Passwd = $scope.Password;
var path = $scope.path; var path = $scope.path;
var type = $scope.RemoteBackuptype; var type = $scope.RemoteBackuptype;
var Providervalue = $scope.Providervalue;
var data;
if (type == "SFTP") { if (type == "SFTP") {
var data = { data = {
Hname: Hname, Hname: Hname,
Uname: Uname, Uname: Uname,
Passwd: Passwd, Passwd: Passwd,
path: path, path: path,
type: type type: type
} }
} else if (type == "S3") {
if (Providervalue == "Backblaze") {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
EndUrl: $scope.EndpointURL,
type: type
}
} else {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
type: type
}
}
}
var url = "/websites/SaveBackupConfig"; var url = "/websites/SaveBackupConfig";
@@ -2042,7 +2099,6 @@ app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window)
} }
}
} }
@@ -2062,7 +2118,7 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
FileRetention: FileRetention, FileRetention: FileRetention,
Backfrequency: Backfrequency, Backfrequency: Backfrequency,
ScheduleName: $scope.ScheduleName, ScheduleName: $scope.ScheduleName,
RemoteConfigID : $('#RemoteConfigID').html(), RemoteConfigID: $('#RemoteConfigID').html(),
BackupType: $scope.BackupType BackupType: $scope.BackupType
} }
var url = "/websites/SaveBackupSchedule"; var url = "/websites/SaveBackupSchedule";
@@ -2111,8 +2167,6 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
}; };
$scope.getupdateid = function (ID) { $scope.getupdateid = function (ID) {
UpdatescheduleID = ID; UpdatescheduleID = ID;
} }
@@ -2123,7 +2177,7 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
var fretention = $scope.RemoteFileretention; var fretention = $scope.RemoteFileretention;
var data = { var data = {
ScheduleID:UpdatescheduleID, ScheduleID: UpdatescheduleID,
Frequency: Frequency, Frequency: Frequency,
FileRetention: fretention FileRetention: fretention
} }
@@ -2174,10 +2228,9 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
$scope.RemoteBackupLoading = false; $scope.RemoteBackupLoading = false;
var data = { var data = {
WpsiteID: $('#Wpsite').val(), WpsiteID: $('#Wpsite').val(),
RemoteScheduleID : $('#RemoteScheduleID').html() RemoteScheduleID: $('#RemoteScheduleID').html()
} }
var url = "/websites/AddWPsiteforRemoteBackup"; var url = "/websites/AddWPsiteforRemoteBackup";

View File

@@ -30,6 +30,7 @@
<select ng-model="RemoteBackuptype" ng-change="SelectRemoteBackuptype()" <select ng-model="RemoteBackuptype" ng-change="SelectRemoteBackuptype()"
class="form-control"> class="form-control">
<option>SFTP</option> <option>SFTP</option>
<option>S3</option>
</select> </select>
</div> </div>
</div> </div>
@@ -68,8 +69,45 @@
</div> </div>
<div ng-hide="S3backupdiv">
<span>S3 BAckups</span> <div ng-hide="Selectprovider" class="form-group">
<label class="col-sm-3 control-label">{% trans "Choose Provider" %}</label>
<div class="col-sm-6">
<select ng-model="Providervalue" ng-change="SelectProvidertype()"
class="form-control">
<option selected="selected">Amazon</option>
<option>Wasabi</option>
<option>Backblaze</option>
</select>
</div>
</div>
<div ng-hide="S3keyNamediv" class="form-group">
<label class="col-sm-3 control-label">{% trans "Name" %}</label>
<div class="col-sm-6">
<input name="S3keyName" type="text" class="form-control" ng-model="S3keyName"
required>
</div>
</div>
<div ng-hide="EndpointURLdiv" class="form-group">
<label class="col-sm-3 control-label">{% trans "Endpoint URL" %}</label>
<div class="col-sm-6">
<input name="EndpointURL" type="text" class="form-control" ng-model="EndpointURL"
required>
</div>
</div>
<div ng-hide="Accesskeydiv" class="form-group">
<label class="col-sm-3 control-label">{% trans "Access Key" %}</label>
<div class="col-sm-6">
<input name="Accesskey" type="text" class="form-control" ng-model="Accesskey"
required>
</div>
</div>
<div ng-hide="SecretKeydiv" class="form-group">
<label class="col-sm-3 control-label">{% trans "Secret Key" %}</label>
<div class="col-sm-6">
<input name="SecretKey" type="text" class="form-control" ng-model="SecretKey"
required>
</div>
</div> </div>
@@ -93,18 +131,19 @@
<tr> <tr>
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Backup Type</th> <th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Backup Type</th>
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">HostName</th> <th style="padding: 18px; color: white; width: 161px; font-size: 12px;">HostName</th>
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Path</th> <th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Path / Key Name</th>
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Action</th> <th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Action</th>
</tr> </tr>
</thead> </thead>
<tbody > <tbody>
{% for sub in backupconfigs %} {% for sub in backupconfigs %}
<tr> <tr>
<td style="padding: 13px;">{{ sub.Type }}</td> <td style="padding: 13px;">{{ sub.Type }}</td>
<td style="padding: 13px;">{{ sub.HostName }}</td> <td style="padding: 13px;">{{ sub.HostName }}</td>
<td style="padding: 13px;">{{ sub.Path }}</td> <td style="padding: 13px;">{{ sub.Path }}</td>
<td style="padding: 13px;"> <button <td style="padding: 13px;">
<button
aria-label="" aria-label=""
onclick="DeleteBackupConfigNow('{% url 'RemoteBackupConfig' %}?DeleteID={{ sub.id }}')" onclick="DeleteBackupConfigNow('{% url 'RemoteBackupConfig' %}?DeleteID={{ sub.id }}')"
type="button" class="btn btn-border btn-alt border-red btn-link font-red"> type="button" class="btn btn-border btn-alt border-red btn-link font-red">
@@ -124,7 +163,6 @@
</div> </div>
</div> </div>

View File

@@ -222,12 +222,30 @@ class WebsiteManager:
Data['backupconfigs'] =[] Data['backupconfigs'] =[]
for i in allcon: for i in allcon:
configr = json.loads(i.config) configr = json.loads(i.config)
if i.configtype == "SFTP":
Data['backupconfigs'].append({ Data['backupconfigs'].append({
'id':i.pk, 'id': i.pk,
'Type': i.configtype, 'Type': i.configtype,
'HostName': configr['Hostname'], 'HostName': configr['Hostname'],
'Path': configr['Path'] 'Path': configr['Path']
}) })
elif i.configtype == "S3":
Provider = configr['Provider']
if Provider == "Backblaze":
Data['backupconfigs'].append({
'id': i.pk,
'Type': i.configtype,
'HostName': Provider,
'Path': configr['S3keyname']
})
else:
Data['backupconfigs'].append({
'id': i.pk,
'Type': i.configtype,
'HostName': Provider,
'Path': configr['S3keyname']
})
proc = httpProc(request, 'websiteFunctions/RemoteBackupConfig.html', proc = httpProc(request, 'websiteFunctions/RemoteBackupConfig.html',
Data, 'createWebsite') Data, 'createWebsite')
return proc.render() return proc.render()
@@ -1153,6 +1171,35 @@ class WebsiteManager:
"Password": Passwd, "Password": Passwd,
"Path": path "Path": path
} }
elif ConfigType == "S3":
Provider = data['Provider']
if Provider == "Backblaze":
S3keyname = data['S3keyname']
SecertKey = data['SecertKey']
AccessKey = data['AccessKey']
EndUrl = data['EndUrl']
config = {
"Provider": Provider,
"S3keyname": S3keyname,
"SecertKey": SecertKey,
"AccessKey": AccessKey,
"EndUrl": EndUrl
}
else:
S3keyname = data['S3keyname']
SecertKey = data['SecertKey']
AccessKey = data['AccessKey']
config = {
"Provider": Provider,
"S3keyname": S3keyname,
"SecertKey": SecertKey,
"AccessKey": AccessKey,
}
mkobj = RemoteBackupConfig(owner=admin, configtype=ConfigType, config=json.dumps(config)) mkobj = RemoteBackupConfig(owner=admin, configtype=ConfigType, config=json.dumps(config))
mkobj.save() mkobj.save()