From: Arthur Schiwon Date: Fri, 27 Nov 2020 17:22:59 +0000 (+0100) Subject: use faster and less hungry foreach X-Git-Tag: v20.0.5RC1~5^2~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=213464afcaa74e3094be05459b6f56553d57fa81;p=nextcloud-server.git use faster and less hungry foreach Signed-off-by: Arthur Schiwon --- diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index f1f6f946152..9cedbbadf56 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -55,7 +55,7 @@ use OCP\ILogger; class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, IGetDisplayNameBackend { protected $enabled = false; - /** @var string[] $cachedGroupMembers array of users with gid as key */ + /** @var string[][] $cachedGroupMembers array of users with gid as key */ protected $cachedGroupMembers; /** @var string[] $cachedGroupsByMember array of groups with uid as key */ protected $cachedGroupsByMember; @@ -168,23 +168,21 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I $users = array_merge($users, $search); } } - + if (count($filterParts) > 0) { // if there are filterParts left we need to add their result $filter = $this->access->combineFilterWithOr($filterParts); $search = $this->access->fetchListOfUsers($filter, $requestAttributes, count($filterParts)); $users = array_merge($users, $search); } - + // now we cleanup the users array to get only dns - $dns = array_reduce($users, function (array $carry, array $record) { - if (!in_array($carry, $record['dn'][0])) { - $carry[$record['dn'][0]] = 1; - } - return $carry; - }, []); + $dns = []; + foreach ($users as $record) { + $dns[$record['dn'][0]] = 1; + } $members = array_keys($dns); - + break; }