diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2020-11-27 18:22:59 +0100 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2020-12-15 21:37:51 +0000 |
commit | 213464afcaa74e3094be05459b6f56553d57fa81 (patch) | |
tree | af1e61ef1f7225d84b9accea6f0fe78a17e6003e /apps/user_ldap | |
parent | 250c7535cd97bedf9af8fab5344ef08ce6c0b4df (diff) | |
download | nextcloud-server-213464afcaa74e3094be05459b6f56553d57fa81.tar.gz nextcloud-server-213464afcaa74e3094be05459b6f56553d57fa81.zip |
use faster and less hungry foreach
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r-- | apps/user_ldap/lib/Group_LDAP.php | 18 |
1 files changed, 8 insertions, 10 deletions
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; } |