Handle externalldap errors correctly in settings route

This commit is contained in:
Johannes Zellner
2019-08-29 13:15:18 +02:00
parent f61e9c7f27
commit 6db078c26a
2 changed files with 5 additions and 3 deletions

View File

@@ -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) {