From 6aca61d8aef4f34e45b480ce3bae19318bc0e685 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 17 Aug 2020 16:03:29 -0400 Subject: [PATCH] fix(core): decompose LDAP nested groups --- SoObjects/SOGo/LDAPSource.m | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/SoObjects/SOGo/LDAPSource.m b/SoObjects/SOGo/LDAPSource.m index b2bb15aa6..c2a8071e5 100644 --- a/SoObjects/SOGo/LDAPSource.m +++ b/SoObjects/SOGo/LDAPSource.m @@ -2031,9 +2031,9 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection, NSMutableArray *dns, *uids, *logins; NSString *dn, *login; SOGoUserManager *um; - NSDictionary *d; + NSDictionary *d, *contactInfos; SOGoUser *user; - NSArray *o; + NSArray *o, *users; NSAutoreleasePool *pool; int i, c; NGLdapEntry *entry; @@ -2098,8 +2098,17 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection, user = [SOGoUser userWithLogin: login roles: nil]; if (user) { - [logins addObject: login]; - [members addObject: user]; + contactInfos = [self lookupContactEntryWithUIDorEmail: login inDomain: nil]; + if ([contactInfos objectForKey: @"isGroup"]) + { + users = [self membersForGroupWithUID: login]; + [members addObjectsFromArray: users]; + } + else + { + [logins addObject: login]; + [members addObject: user]; + } } [pool release]; }