From 64679b2e62909df9b3e493a0dc22151b5baae1a6 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Tue, 15 Apr 2014 17:46:48 +0200
Subject: [PATCH] Remove limit and offset manipulation when getting users or
 groups, because it does not work when more than one user or group backend.
 Fixing it would be too costly performancewise, so we switch back to the model
 used in OC 5: limit and offset are effective per backend, and not a general
 constraint

---
 lib/private/group/group.php   | 12 ------------
 lib/private/group/manager.php |  6 ------
 lib/private/user/manager.php  | 14 --------------
 3 files changed, 32 deletions(-)

diff --git a/lib/private/group/group.php b/lib/private/group/group.php
index a2b8a0dcbe..3efbb6e702 100644
--- a/lib/private/group/group.php
+++ b/lib/private/group/group.php
@@ -172,12 +172,6 @@ class Group {
 		$users = array();
 		foreach ($this->backends as $backend) {
 			$userIds = $backend->usersInGroup($this->gid, $search, $limit, $offset);
-			if (!is_null($limit)) {
-				$limit -= count($userIds);
-			}
-			if (!is_null($offset)) {
-				$offset -= count($userIds);
-			}
 			$users += $this->getVerifiedUsers($userIds);
 			if (!is_null($limit) and $limit <= 0) {
 				return array_values($users);
@@ -223,12 +217,6 @@ class Group {
 			} else {
 				$userIds = $backend->usersInGroup($this->gid, $search, $limit, $offset);
 			}
-			if (!is_null($limit)) {
-				$limit -= count($userIds);
-			}
-			if (!is_null($offset)) {
-				$offset -= count($userIds);
-			}
 			$users = $this->getVerifiedUsers($userIds);
 			if (!is_null($limit) and $limit <= 0) {
 				return array_values($users);
diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php
index 9b433b64fd..f591bd32ab 100644
--- a/lib/private/group/manager.php
+++ b/lib/private/group/manager.php
@@ -134,12 +134,6 @@ class Manager extends PublicEmitter {
 		$groups = array();
 		foreach ($this->backends as $backend) {
 			$groupIds = $backend->getGroups($search, $limit, $offset);
-			if (!is_null($limit)) {
-				$limit -= count($groupIds);
-			}
-			if (!is_null($offset)) {
-				$offset -= count($groupIds);
-			}
 			foreach ($groupIds as $groupId) {
 				$groups[$groupId] = $this->getGroupObject($groupId);
 			}
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index a2ad9d1770..14698452e8 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -175,13 +175,6 @@ class Manager extends PublicEmitter {
 			if (is_array($backendUsers)) {
 				foreach ($backendUsers as $uid) {
 					$users[] = $this->getUserObject($uid, $backend);
-					if (!is_null($limit)) {
-						$limit--;
-					}
-					if (!is_null($offset) and $offset > 0) {
-						$offset--;
-					}
-
 				}
 			}
 		}
@@ -211,13 +204,6 @@ class Manager extends PublicEmitter {
 			if (is_array($backendUsers)) {
 				foreach ($backendUsers as $uid => $displayName) {
 					$users[] = $this->getUserObject($uid, $backend);
-					if (!is_null($limit)) {
-						$limit--;
-					}
-					if (!is_null($offset) and $offset > 0) {
-						$offset--;
-					}
-
 				}
 			}
 		}
-- 
GitLab