fix(calendar): prevent to return the same user twice in ldap groups

This commit is contained in:
Hivert Quentin
2024-10-29 17:14:25 +01:00
parent 1c611a0a4a
commit f1257088f2

View File

@@ -2306,7 +2306,7 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection,
- (NSArray *) membersForGroupWithUID: (NSString *) uid
{
NSMutableArray *dns, *uids;
NSMutableArray *dns, *uids, *userLogins;
NSString *dn, *login;
SOGoUserManager *um;
NSDictionary *d, *contactInfos;
@@ -2327,6 +2327,7 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection,
members = [NSMutableArray new];
uids = [NSMutableArray array];
dns = [NSMutableArray array];
userLogins = [NSMutableArray array];
// We check if it's a static group
// Fetch "members" - we get DNs
@@ -2358,6 +2359,12 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection,
pool = [NSAutoreleasePool new];
dn = [dns objectAtIndex: i];
login = [um getLoginForDN: [dn lowercaseString]];
if([userLogins containsObject: login])
{
[pool release];
continue; //user alrady fetch
}
[userLogins addObject: login];
user = [SOGoUser userWithLogin: login roles: nil];
if (user)
{
@@ -2385,6 +2392,12 @@ _makeLDAPChanges (NGLdapConnection *ldapConnection,
{
pool = [NSAutoreleasePool new];
login = [uids objectAtIndex: i];
if([userLogins containsObject: login])
{
[pool release];
continue; //user alrady fetch
}
[userLogins addObject: login];
user = [SOGoUser userWithLogin: login roles: nil];
if (user)
{