Only send provider specific dns configs

This commit is contained in:
Johannes Zellner
2025-05-02 15:34:10 +02:00
parent 3c1419a22f
commit 8939f0dad7
3 changed files with 118 additions and 66 deletions

View File

@@ -70,9 +70,9 @@ function needsPort80(dnsProvider, tlsProvider) {
(tlsProvider === 'letsencrypt-prod' || tlsProvider === 'letsencrypt-staging'));
}
function setDefaultTlsProvider() {
function setDefaultTlsProvider(p) {
// wildcard LE won't work without automated DNS
if (provider.value === 'manual' || provider.value === 'noop' || provider.value === 'wildcard') {
if (p === 'manual' || p === 'noop' || p === 'wildcard') {
tlsProvider.value = 'letsencrypt-prod';
} else {
tlsProvider.value = 'letsencrypt-prod-wildcard';
@@ -80,68 +80,32 @@ function setDefaultTlsProvider() {
}
function resetFields() {
dnsConfig.value = {};
if (provider.value === 'route53') {
dnsConfig.value.accessKeyId = '';
dnsConfig.value.secretAccessKey = '';
} else if (provider.value === 'gcdns') {
dnsConfig.value.projectId = '';
dnsConfig.value.credentials = {
client_email: '',
private_key: '',
};
} else if (provider.value === 'digitalocean') {
dnsConfig.value.token = '';
} else if (provider.value === 'linode') {
dnsConfig.value.token = '';
} else if (provider.value === 'bunny') {
dnsConfig.value.accessKey = '';
} else if (provider.value === 'dnsimple') {
dnsConfig.value.accessToken = '';
} else if (provider.value === 'hetzner') {
dnsConfig.value.token = '';
} else if (provider.value === 'vultr') {
dnsConfig.value.token = '';
} else if (provider.value === 'desec') {
dnsConfig.value.token = '';
} else if (provider.value === 'gandi') {
dnsConfig.value.token = '';
dnsConfig.value.tokenType = '';
} else if (provider.value === 'godaddy') {
dnsConfig.value.apiKey = '';
dnsConfig.value.apiSecret = '';
} else if (provider.value === 'cloudflare') {
dnsConfig.value.token = '';
dnsConfig.value.email = '';
dnsConfig.value.tokenType = '';
dnsConfig.value.defaultProxyStatus = false;
} else if (provider.value === 'namecom') {
dnsConfig.value.token = '';
dnsConfig.value.username = '';
} else if (provider.value === 'namecheap') {
dnsConfig.value.token = '';
dnsConfig.value.username = '';
} else if (provider.value === 'inwx') {
dnsConfig.value.username = '';
dnsConfig.value.password = '';
} else if (provider.value === 'netcup') {
dnsConfig.value.customerNumber = '';
dnsConfig.value.apiKey = '';
dnsConfig.value.apiPassword = '';
} else if (provider.value === 'ovh') {
dnsConfig.value.endpoint = '';
dnsConfig.value.consumerKey = '';
dnsConfig.value.appKey = '';
dnsConfig.value.appSecret = '';;
} else if (provider.value === 'porkbun') {
dnsConfig.value.apikey = '';
dnsConfig.value.secretapikey = '';
}
dnsConfig.value.accessKeyId = '';
dnsConfig.value.accessKey = '';
dnsConfig.value.accessToken = '';
dnsConfig.value.apiKey = '';
dnsConfig.value.apikey = '';
dnsConfig.value.appSecret = '';
dnsConfig.value.apiPassword = '';
dnsConfig.value.apiSecret = '';
dnsConfig.value.consumerKey = '';
dnsConfig.value.credentials = { client_email: '', private_key: '' };
dnsConfig.value.customerNumber = '';
dnsConfig.value.defaultProxyStatus = false;
dnsConfig.value.email = '';
dnsConfig.value.endpoint = '';
dnsConfig.value.password = '';
dnsConfig.value.projectId = '';
dnsConfig.value.secretAccessKey = '';
dnsConfig.value.secretapikey = '';
dnsConfig.value.token = '';
dnsConfig.value.tokenType = '';
dnsConfig.value.username = '';
}
function onProviderChange() {
setDefaultTlsProvider();
resetFields();
function onProviderChange(p) {
setDefaultTlsProvider(p);
resetFields(p);
}
function onGcdnsFileInputChange(event) {
@@ -164,7 +128,7 @@ function onGcdnsFileInputChange(event) {
<div>
<FormGroup>
<label for="providerInput">{{ $t('domains.domainDialog.provider') }} <sup><a href="https://docs.cloudron.io/domains/#dns-providers" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<SingleSelect v-model="provider" @select="onProviderChange()" :options="domainProviders" option-key="value" option-label="name" />
<SingleSelect v-model="provider" @select="onProviderChange" :options="domainProviders" option-key="value" option-label="name" />
</FormGroup>
<!-- Route53 -->