summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-05-14 21:24:11 +0300
committerLauri Ojansivu <x@xet7.org>2019-05-14 21:24:11 +0300
commit0fe40ad9ec82ef2045578f4cc1e2ebb6cc80d47a (patch)
tree59a24ded5c2fd98fb58a4b3aa1c30ce831004d5d /packages
parent0765278195839deae43519c726c13c71667333bd (diff)
downloadwekan-0fe40ad9ec82ef2045578f4cc1e2ebb6cc80d47a.tar.gz
wekan-0fe40ad9ec82ef2045578f4cc1e2ebb6cc80d47a.tar.bz2
wekan-0fe40ad9ec82ef2045578f4cc1e2ebb6cc80d47a.zip
- Add missing [wekan-ldap#40](https://github.com/wekan/wekan-ldap/pull/40) code about LDAP_SYNC_ADMIN_STATUS.
Thanks to JulianJacobi, n-st, chirrut2 and xet7 ! Closes #2351
Diffstat (limited to 'packages')
-rw-r--r--packages/wekan-ldap/server/loginHandler.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/wekan-ldap/server/loginHandler.js b/packages/wekan-ldap/server/loginHandler.js
index 0c1aa33f..79b3899a 100644
--- a/packages/wekan-ldap/server/loginHandler.js
+++ b/packages/wekan-ldap/server/loginHandler.js
@@ -179,6 +179,15 @@ Accounts.registerLoginHandler('ldap', function(loginRequest) {
},
};
+ if (LDAP.settings_get('LDAP_SYNC_ADMIN_STATUS') === true) {
+ log_debug('Updating admin status');
+ const targetGroups = LDAP.settings_get('LDAP_SYNC_ADMIN_GROUPS').split(',');
+ const groups = ldap.getUserGroups(username, ldapUser).filter((value) => targetGroups.includes(value));
+
+ user.isAdmin = groups.length > 0;
+ Meteor.users.update({_id: user._id}, {$set: {isAdmin: user.isAdmin}});
+ }
+
if( LDAP.settings_get('LDAP_SYNC_GROUP_ROLES') === true ) {
log_debug('Updating Groups/Roles');
const groups = ldap.getUserGroups(username, ldapUser);
@@ -217,6 +226,15 @@ Accounts.registerLoginHandler('ldap', function(loginRequest) {
const result = addLdapUser(ldapUser, username, loginRequest.ldapPass);
+ if (LDAP.settings_get('LDAP_SYNC_ADMIN_STATUS') === true) {
+ log_debug('Updating admin status');
+ const targetGroups = LDAP.settings_get('LDAP_SYNC_ADMIN_GROUPS').split(',');
+ const groups = ldap.getUserGroups(username, ldapUser).filter((value) => targetGroups.includes(value));
+
+ result.isAdmin = groups.length > 0;
+ Meteor.users.update({_id: result.userId}, {$set: {isAdmin: result.isAdmin}});
+ }
+
if( LDAP.settings_get('LDAP_SYNC_GROUP_ROLES') === true ) {
const groups = ldap.getUserGroups(username, ldapUser);
if( groups.length > 0 ) {