validate hyphenatedSubdomain
This commit is contained in:
@@ -231,6 +231,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
|
|
||||||
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
||||||
if (!dnsConfig.email || typeof dnsConfig.email !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'email must be a non-empty string'));
|
if (!dnsConfig.email || typeof dnsConfig.email !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'email must be a non-empty string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
token: dnsConfig.token,
|
token: dnsConfig.token,
|
||||||
|
|||||||
@@ -201,6 +201,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
token: dnsConfig.token,
|
token: dnsConfig.token,
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
if (!dnsConfig.token || typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a non-empty string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
token: dnsConfig.token,
|
token: dnsConfig.token,
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
if (!dnsConfig.credentials || typeof dnsConfig.credentials !== 'object') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials must be an object'));
|
if (!dnsConfig.credentials || typeof dnsConfig.credentials !== 'object') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials must be an object'));
|
||||||
if (typeof dnsConfig.credentials.client_email !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials.client_email must be a string'));
|
if (typeof dnsConfig.credentials.client_email !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials.client_email must be a string'));
|
||||||
if (typeof dnsConfig.credentials.private_key !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials.private_key must be a string'));
|
if (typeof dnsConfig.credentials.private_key !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'credentials.private_key must be a string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = getDnsCredentials(dnsConfig);
|
var credentials = getDnsCredentials(dnsConfig);
|
||||||
if (process.env.BOX_ENV === 'test') return callback(null, credentials); // this shouldn't be here
|
if (process.env.BOX_ENV === 'test') return callback(null, credentials); // this shouldn't be here
|
||||||
|
|||||||
@@ -148,6 +148,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
|
|
||||||
if (!dnsConfig.apiKey || typeof dnsConfig.apiKey !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'apiKey must be a non-empty string'));
|
if (!dnsConfig.apiKey || typeof dnsConfig.apiKey !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'apiKey must be a non-empty string'));
|
||||||
if (!dnsConfig.apiSecret || typeof dnsConfig.apiSecret !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'apiSecret must be a non-empty string'));
|
if (!dnsConfig.apiSecret || typeof dnsConfig.apiSecret !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'apiSecret must be a non-empty string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
apiKey: dnsConfig.apiKey,
|
apiKey: dnsConfig.apiKey,
|
||||||
|
|||||||
+4
-1
@@ -55,10 +55,13 @@ 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'));
|
||||||
|
|
||||||
var config = {
|
var config = {
|
||||||
wildcard: !!dnsConfig.wildcard,
|
wildcard: !!dnsConfig.wildcard,
|
||||||
hyphenatedSubdomains: !!dnsConfig.hyphenatedSubdomains
|
hyphenatedSubdomains: !!dnsConfig.hyphenatedSubdomains
|
||||||
}
|
};
|
||||||
|
|
||||||
// Very basic check if the nameservers can be fetched
|
// Very basic check if the nameservers can be fetched
|
||||||
dns.resolve(zoneName, 'NS', { timeout: 5000 }, function (error, nameservers) {
|
dns.resolve(zoneName, 'NS', { timeout: 5000 }, function (error, nameservers) {
|
||||||
|
|||||||
@@ -208,6 +208,10 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
assert.strictEqual(typeof ip, 'string');
|
assert.strictEqual(typeof ip, 'string');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
|
if (typeof dnsConfig.username !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'username must be a string'));
|
||||||
|
if (typeof dnsConfig.token !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'token must be a string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
username: dnsConfig.username,
|
username: dnsConfig.username,
|
||||||
token: dnsConfig.token,
|
token: dnsConfig.token,
|
||||||
|
|||||||
+2
-1
@@ -114,7 +114,7 @@ function add(dnsConfig, zoneName, subdomain, type, values, callback) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var route53 = new AWS.Route53(getDnsCredentials(dnsConfig));
|
var route53 = new AWS.Route53(getDnsCredentials(dnsConfig));
|
||||||
route53.changeResourceRecordSets(params, function(error, result) {
|
route53.changeResourceRecordSets(params, function(error) {
|
||||||
if (error && error.code === 'AccessDenied') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message));
|
if (error && error.code === 'AccessDenied') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message));
|
||||||
if (error && error.code === 'InvalidClientTokenId') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message));
|
if (error && error.code === 'InvalidClientTokenId') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message));
|
||||||
if (error && error.code === 'PriorRequestNotComplete') return callback(new DomainsError(DomainsError.STILL_BUSY, error.message));
|
if (error && error.code === 'PriorRequestNotComplete') return callback(new DomainsError(DomainsError.STILL_BUSY, error.message));
|
||||||
@@ -235,6 +235,7 @@ function verifyDnsConfig(dnsConfig, fqdn, zoneName, ip, callback) {
|
|||||||
|
|
||||||
if (!dnsConfig.accessKeyId || typeof dnsConfig.accessKeyId !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'accessKeyId must be a non-empty string'));
|
if (!dnsConfig.accessKeyId || typeof dnsConfig.accessKeyId !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'accessKeyId must be a non-empty string'));
|
||||||
if (!dnsConfig.secretAccessKey || typeof dnsConfig.secretAccessKey !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'secretAccessKey must be a non-empty string'));
|
if (!dnsConfig.secretAccessKey || typeof dnsConfig.secretAccessKey !== 'string') return callback(new DomainsError(DomainsError.BAD_FIELD, 'secretAccessKey must be a non-empty string'));
|
||||||
|
if ('hyphenatedSubdomains' in dnsConfig && typeof dnsConfig.hyphenatedSubdomains !== 'boolean') return callback(new DomainsError(DomainsError.BAD_FIELD, 'hyphenatedSubdomains must be a boolean'));
|
||||||
|
|
||||||
var credentials = {
|
var credentials = {
|
||||||
accessKeyId: dnsConfig.accessKeyId,
|
accessKeyId: dnsConfig.accessKeyId,
|
||||||
|
|||||||
@@ -506,6 +506,7 @@ describe('dns provider', function () {
|
|||||||
before(function (done) {
|
before(function (done) {
|
||||||
DOMAIN_0.provider = 'namecom';
|
DOMAIN_0.provider = 'namecom';
|
||||||
DOMAIN_0.config = {
|
DOMAIN_0.config = {
|
||||||
|
username: 'fake',
|
||||||
token: TOKEN
|
token: TOKEN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user