Make wildcard a separate provider
this is required because the config object is not returned for locked domains and the UI display for the provider field is then wrong.
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var async = require('async');
|
||||||
|
|
||||||
|
exports.up = function(db, callback) {
|
||||||
|
db.all('SELECT * from domains WHERE provider=?', [ 'manual' ], function (error, results) {
|
||||||
|
if (error) return callback(error);
|
||||||
|
|
||||||
|
async.eachSeries(results, function (result, iteratorDone) {
|
||||||
|
var config = JSON.parse(result.configJson || '{}');
|
||||||
|
if (!config.wildcard) return iteratorDone();
|
||||||
|
delete config.wildcard;
|
||||||
|
|
||||||
|
db.runSql('UPDATE domains SET provider=?, configJson=? WHERE domain=?', [ 'wildcard', JSON.stringify(config), result.domain ], iteratorDone);
|
||||||
|
}, callback);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.down = function(db, callback) {
|
||||||
|
callback();
|
||||||
|
};
|
||||||
@@ -55,11 +55,9 @@ function verifyDnsConfig(dnsConfig, domain, zoneName, ip, callback) {
|
|||||||
assert.strictEqual(typeof ip, 'string');
|
assert.strictEqual(typeof ip, 'string');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
if ('wildcard' in dnsConfig && typeof dnsConfig.wildcard !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'wildcard must be a boolean'));
|
|
||||||
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
wildcard: !!dnsConfig.wildcard,
|
|
||||||
hyphenatedSubdomains: !!dnsConfig.hyphenatedSubdomains
|
hyphenatedSubdomains: !!dnsConfig.hyphenatedSubdomains
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -73,7 +73,7 @@ DomainsError.STILL_BUSY = 'Still busy';
|
|||||||
DomainsError.IN_USE = 'In Use';
|
DomainsError.IN_USE = 'In Use';
|
||||||
DomainsError.INTERNAL_ERROR = 'Internal error';
|
DomainsError.INTERNAL_ERROR = 'Internal error';
|
||||||
DomainsError.ACCESS_DENIED = 'Access denied';
|
DomainsError.ACCESS_DENIED = 'Access denied';
|
||||||
DomainsError.INVALID_PROVIDER = 'provider must be route53, gcdns, digitalocean, gandi, cloudflare, namecom, noop, manual or caas';
|
DomainsError.INVALID_PROVIDER = 'provider must be route53, gcdns, digitalocean, gandi, cloudflare, namecom, noop, wildcard, manual or caas';
|
||||||
|
|
||||||
// choose which subdomain backend we use for test purpose we use route53
|
// choose which subdomain backend we use for test purpose we use route53
|
||||||
function api(provider) {
|
function api(provider) {
|
||||||
@@ -90,6 +90,7 @@ function api(provider) {
|
|||||||
case 'namecom': return require('./dns/namecom.js');
|
case 'namecom': return require('./dns/namecom.js');
|
||||||
case 'noop': return require('./dns/noop.js');
|
case 'noop': return require('./dns/noop.js');
|
||||||
case 'manual': return require('./dns/manual.js');
|
case 'manual': return require('./dns/manual.js');
|
||||||
|
case 'wildcard': return require('./dns/manual.js');
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user