From 86daab2800aacdbc26dd532f348766cccaad1e51 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 18 Sep 2014 17:12:35 +0200 Subject: backport of #11494 fix retrievel of group members and cache group members fix changed variable name with several backends, more than limit can be returned make performance less bad. Still far from good, but at least it works add one simple cache test adjust group manager tests --- lib/private/group/manager.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'lib/private') diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php index 816e7b427f5..417be79ab30 100644 --- a/lib/private/group/manager.php +++ b/lib/private/group/manager.php @@ -223,10 +223,9 @@ class Manager extends PublicEmitter implements IGroupManager { if(!empty($search)) { // only user backends have the capability to do a complex search for users $searchOffset = 0; + $searchLimit = $limit * 100; if($limit === -1) { - $searchLimit = $group->count(''); - } else { - $searchLimit = $limit * 2; + $searchLimit = 500; } do { @@ -237,7 +236,7 @@ class Manager extends PublicEmitter implements IGroupManager { } } $searchOffset += $searchLimit; - } while(count($groupUsers) < $searchLimit+$offset && count($filteredUsers) === $searchLimit); + } while(count($groupUsers) < $searchLimit+$offset && count($filteredUsers) >= $searchLimit); if($limit === -1) { $groupUsers = array_slice($groupUsers, $offset); -- cgit v1.2.3