diff --git a/src/externalldap.js b/src/externalldap.js index 265b68da1..0062ae856 100644 --- a/src/externalldap.js +++ b/src/externalldap.js @@ -83,7 +83,7 @@ function testConfig(config, callback) { client = ldap.createClient({ url: config.url }); } catch (e) { if (e instanceof ldap.ProtocolError) return callback(new ExternalLdapError(ExternalLdapError.BAD_FIELD, 'url protocol is invalid')); - return callback(new ExternalLdapError(ExternalLdapError.INTERNAL_ERROR, e)); + return callback(new ExternalLdapError(ExternalLdapError.EXTERNAL_ERROR, e)); } if (!config.bindDn) return callback(null, client); diff --git a/src/settings.js b/src/settings.js index d8937bb7a..2f2ff483f 100644 --- a/src/settings.js +++ b/src/settings.js @@ -100,6 +100,7 @@ var addons = require('./addons.js'), DatabaseError = require('./databaseerror.js'), debug = require('debug')('box:settings'), externalldap = require('./externalldap.js'), + ExternalLdapError = externalldap.ExternalLdapError, moment = require('moment-timezone'), paths = require('./paths.js'), safe = require('safetydance'), @@ -436,8 +437,9 @@ function setExternalLdapConfig(externalLdapConfig, callback) { assert.strictEqual(typeof callback, 'function'); externalldap.testConfig(externalLdapConfig, function (error) { - if (error && error.reason === SettingsError.BAD_FIELD) return callback(new SettingsError(SettingsError.BAD_FIELD, error.message)); - if (error && error.reason === SettingsError.EXTERNAL_ERROR) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, error.message)); + if (error && error.reason === ExternalLdapError.BAD_FIELD) return callback(new SettingsError(SettingsError.BAD_FIELD, error.message)); + if (error && error.reason === ExternalLdapError.EXTERNAL_ERROR) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, error.message)); + if (error && error.reason === ExternalLdapError.INVALID_CREDENTIALS) return callback(new SettingsError(SettingsError.BAD_FIELD, 'invalid bind credentials')); if (error) return callback(new SettingsError(SettingsError.INTERNAL_ERROR, error)); settingsdb.set(exports.EXTERNAL_LDAP_KEY, JSON.stringify(externalLdapConfig), function (error) {