Adding Google Cloud DNS to webadmin

This commit is contained in:
Aleksandr Bogdanov
2017-09-12 17:36:53 +02:00
parent 37f9e60978
commit ec93d564e9
2 changed files with 26 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio
// keep in sync with setupdns.js
$scope.dnsProvider = [
{ name: 'AWS Route53', value: 'route53' },
{ name: 'Google Cloud DNS', value: 'gcdns' },
{ name: 'Digital Ocean', value: 'digitalocean' },
{ name: 'Cloudflare (DNS only)', value: 'cloudflare' },
{ name: 'Wildcard', value: 'wildcard' },
@@ -43,6 +44,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio
customDomain: '',
accessKeyId: '',
secretAccessKey: '',
gcdnsKey: '',
digitalOceanToken: '',
cloudflareToken: '',
cloudflareEmail: '',
@@ -130,6 +132,18 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio
if (data.provider === 'route53') {
data.accessKeyId = $scope.dnsCredentials.accessKeyId;
data.secretAccessKey = $scope.dnsCredentials.secretAccessKey;
} else if (data.provider === 'gcdns'){
var serviceAccountKey = JSON.parse($scope.dnsCredentials.gcdnsKey);
if(!serviceAccountKey) {
$scope.dnsCredentials.error = "Cannot parse Google Service Account Key";
$scope.dnsCredentials.busy = false;
return;
}
data.projectId = serviceAccountKey.project_id;
data.credentials = {
client_email: serviceAccountKey.client_email,
private_key: serviceAccountKey.private_key
};
} else if (data.provider === 'digitalocean') {
data.token = $scope.dnsCredentials.digitalOceanToken;
} else if (data.provider === 'cloudflare') {
@@ -178,6 +192,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio
$scope.dnsCredentials.customDomain = '';
$scope.dnsCredentials.accessKeyId = '';
$scope.dnsCredentials.secretAccessKey = '';
$scope.dnsCredentials.gcdnsKey = '';
$scope.dnsCredentials.digitalOceanToken = '';
$scope.dnsCredentials.cloudflareToken = '';
$scope.dnsCredentials.cloudflareEmail = '';
@@ -196,6 +211,7 @@ angular.module('Application').controller('CertsController', ['$scope', '$locatio
$scope.dnsCredentials.customDomain = $scope.config.isCustomDomain ? $scope.config.fqdn : '';
$scope.dnsCredentials.accessKeyId = $scope.dnsConfig.accessKeyId;
$scope.dnsCredentials.secretAccessKey = $scope.dnsConfig.secretAccessKey;
$scope.dnsCredentials.gcdnsKey = $scope.dnsConfig.provider === 'gcdns' ? JSON.stringify({"project_id": $scope.dnsConfig.projectId, "credentials": $scope.dnsConfig.credentials}) : '';
$scope.dnsCredentials.digitalOceanToken = $scope.dnsConfig.provider === 'digitalocean' ? $scope.dnsConfig.token : '';
$scope.dnsCredentials.cloudflareToken = $scope.dnsConfig.provider === 'cloudflare' ? $scope.dnsConfig.token : '';
$scope.dnsCredentials.cloudflareEmail = $scope.dnsConfig.email;