From 8a4e79963f4ec973f893eb6fe9d38700488dcc45 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 4 May 2020 09:57:49 -0400 Subject: [PATCH 1/2] fix(core): skip folder check during ACL subscribe --- Tools/SOGoToolManageACL.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Tools/SOGoToolManageACL.m b/Tools/SOGoToolManageACL.m index ac32b52b7..ef509aed5 100644 --- a/Tools/SOGoToolManageACL.m +++ b/Tools/SOGoToolManageACL.m @@ -413,7 +413,9 @@ typedef enum fm = [GCSFolderManager defaultFolderManager]; f = [fm folderAtPath: [NSString stringWithFormat: @"/Users/%@/%@", owner, folder]]; - if (!f) + // Skip the folder existence check so we can auto-create the personal folder + // for users that have never logged-in + if (!f && command != ManageACLSubscribe) { NSLog(@"No folder %@ found for user %@", folder, owner); rc = NO; From 8f7b2bfbed3978751011a86e764e65ee45ac2cf4 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 4 May 2020 12:19:18 -0400 Subject: [PATCH 2/2] fix(core): LDAP group expansion must use all user sources --- SoObjects/SOGo/LDAPSource.m | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SoObjects/SOGo/LDAPSource.m b/SoObjects/SOGo/LDAPSource.m index 0f485461d..3d004cac1 100644 --- a/SoObjects/SOGo/LDAPSource.m +++ b/SoObjects/SOGo/LDAPSource.m @@ -34,6 +34,7 @@ #import "NSString+Crypto.h" #import "SOGoCache.h" #import "SOGoSystemDefaults.h" +#import "SOGoUser.h" #import "SOGoUserManager.h" #import "LDAPSource.h" @@ -2027,7 +2028,7 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection, NSString *dn, *login; SOGoUserManager *um; NSDictionary *d; - NSDictionary *user; + SOGoUser *user; NSArray *o; NSAutoreleasePool *pool; int i, c; @@ -2075,10 +2076,11 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection, { pool = [NSAutoreleasePool new]; dn = [dns objectAtIndex: i]; - user = [self lookupContactEntryByDN: dn]; + login = [um getLoginForDN: [dn lowercaseString]]; + user = [SOGoUser userWithLogin: login roles: nil]; if (user) { - [logins addObject: [user objectForKey: @"c_uid"]]; + [logins addObject: login]; [members addObject: user]; } [pool release]; @@ -2089,11 +2091,11 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection, { pool = [NSAutoreleasePool new]; login = [uids objectAtIndex: i]; - user = [self lookupContactEntry: login inDomain: nil]; + user = [SOGoUser userWithLogin: login roles: nil]; if (user) { - [logins addObject: [user objectForKey: @"c_uid"]]; + [logins addObject: [user loginInDomain]]; [members addObject: user]; } [pool release];