From 6ca77c26c5b7535ed4f79e4ab18c8a5cf683baf6 Mon Sep 17 00:00:00 2001 From: Maki Nishifuji Date: Thu, 11 Aug 2016 02:24:36 +0900 Subject: [PATCH] Bugfix: Could not login when the CROWD disabled and LDAP enabled (#3974) --- .meteor/versions | 1 - packages/rocketchat-crowd/client/loginHelper.js | 3 ++- packages/rocketchat-crowd/server/crowd.js | 10 ++++++++++ packages/rocketchat-ldap/client/loginHelper.js | 1 + packages/rocketchat-ldap/server/loginHandler.js | 9 ++++----- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/.meteor/versions b/.meteor/versions index b13f6b36067..9d194ace4cb 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -74,7 +74,6 @@ livedata@1.0.15 localstorage@1.0.5 logging@1.0.8 matb33:collection-hooks@0.8.1 -mdg:geolocation@1.3.0 mdg:validation-error@0.5.1 meteor@1.1.10 meteor-base@1.0.1 diff --git a/packages/rocketchat-crowd/client/loginHelper.js b/packages/rocketchat-crowd/client/loginHelper.js index 4389efddbd7..362a6a99f41 100644 --- a/packages/rocketchat-crowd/client/loginHelper.js +++ b/packages/rocketchat-crowd/client/loginHelper.js @@ -8,6 +8,7 @@ Meteor.loginWithCrowd = function(username, password, callback) { username = args.shift(); password = args.shift(); var loginRequest = { + crowd: true, username: username, crowdPassword: password }; @@ -23,4 +24,4 @@ Meteor.loginWithCrowd = function(username, password, callback) { } } }); -}; \ No newline at end of file +}; diff --git a/packages/rocketchat-crowd/server/crowd.js b/packages/rocketchat-crowd/server/crowd.js index 7b5affe06b2..7a60cee8779 100644 --- a/packages/rocketchat-crowd/server/crowd.js +++ b/packages/rocketchat-crowd/server/crowd.js @@ -180,6 +180,16 @@ const CROWD = class CROWD { }; Accounts.registerLoginHandler('crowd', function(loginRequest) { + if (!loginRequest.crowd) { + return undefined; + } + + logger.info('Init CROWD login', loginRequest.username); + + if (RocketChat.settings.get('CROWD_Enable') !== true) { + return fallbackDefaultAccountSystem(this, loginRequest.username, loginRequest.crowdPassword); + } + const crowd = new CROWD(); let user; try { diff --git a/packages/rocketchat-ldap/client/loginHelper.js b/packages/rocketchat-ldap/client/loginHelper.js index 838b8916a8d..ac364abba90 100644 --- a/packages/rocketchat-ldap/client/loginHelper.js +++ b/packages/rocketchat-ldap/client/loginHelper.js @@ -29,6 +29,7 @@ Meteor.loginWithLDAP = function(username, password, customLdapOptions, callback) // Set up loginRequest object var loginRequest = { + ldap: true, username: username, ldapPass: password, ldapOptions: customLdapOptions diff --git a/packages/rocketchat-ldap/server/loginHandler.js b/packages/rocketchat-ldap/server/loginHandler.js index 5600b147885..2e5eaade21d 100644 --- a/packages/rocketchat-ldap/server/loginHandler.js +++ b/packages/rocketchat-ldap/server/loginHandler.js @@ -27,18 +27,17 @@ function fallbackDefaultAccountSystem(bind, username, password) { Accounts.registerLoginHandler('ldap', function(loginRequest) { - const self = this; - - if (!loginRequest.ldapOptions) { + if (!loginRequest.ldap || !loginRequest.ldapOptions) { return undefined; } - logger.info('Init login', loginRequest.username); + logger.info('Init LDAP login', loginRequest.username); if (RocketChat.settings.get('LDAP_Enable') !== true) { - return fallbackDefaultAccountSystem(self, loginRequest.username, loginRequest.ldapPass); + return fallbackDefaultAccountSystem(this, loginRequest.username, loginRequest.ldapPass); } + const self = this; const ldap = new LDAP(); let ldapUser;