From 8b19cfcd885451080a5114dc451a3c78a8dccc81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 13 Dec 2021 16:02:05 +0100 Subject: [PATCH] Small optimisation of _groupMembers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will not change the result as users are check to be existing afterwards but avoids this check when we know it’s a group. Signed-off-by: Côme Chilliet --- apps/user_ldap/lib/Group_LDAP.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index 3962b064fde..a7a22ff46d9 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -294,8 +294,13 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I if ((int)$this->access->connection->ldapNestedGroups === 1) { while ($recordDn = array_shift($members)) { $nestedMembers = $this->_groupMembers($recordDn, $seen); - $members = array_merge($members, $nestedMembers); - $allMembers[] = $recordDn; + if (!empty($nestedMembers)) { + // Group, queue its members for processing + $members = array_merge($members, $nestedMembers); + } else { + // User (or empty group, or previously seen group), add it to the member list + $allMembers[] = $recordDn; + } } } else { $allMembers = $members;