From f6b3f898de2f2ce1d1cf713748d4de1e04b786af Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 18 Mar 2015 17:07:19 +0100 Subject: [PATCH] Various fixes. --- packages/xo-server-auth-ldap/index.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/xo-server-auth-ldap/index.js b/packages/xo-server-auth-ldap/index.js index aeae9f277..a7f8fef1f 100644 --- a/packages/xo-server-auth-ldap/index.js +++ b/packages/xo-server-auth-ldap/index.js @@ -4,27 +4,34 @@ var Bluebird = require('bluebird'); var createClient = require('ldapjs').createClient; -var escape = require('ldapjs/lib/filters/escape'); +var escape = require('ldapjs/lib/filters/escape').escape; //==================================================================== function AuthLdap(conf) { var base = conf.base ? ',' + conf.base : ''; + var clientOpts = { + url: conf.uri, + }; this._provider = function (credentials) { + var username = credentials.username; + var password = credentials.password; + if (username === undefined || password === undefined) { + return Bluebird.reject(new Error('invalid credentials')); + } + return new Bluebird(function (resolve, reject) { - var client = createClient({ - url: conf.uri, - }); + var client = createClient(clientOpts); client.bind( - 'uid=' + escape(credentials.username) + base, - credentials.password, + 'uid=' + escape(username) + base, + password, function (error) { if (error) { reject(error); } else { - resolve(); + resolve({ username }); } client.unbind();