[Pkg-owncloud-commits] [owncloud] 25/46: backport of #9104
David Prévot
taffit at moszumanska.debian.org
Fri Oct 24 15:11:43 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 174ab07a4beed45b2d3a477723f6b47a37ecc7ce
Author: macjohnny <estebanmarin at gmx.ch>
Date: Thu Jun 19 11:37:46 2014 +0200
backport of #9104
Update manager.php
add caching to getUserGroupIds
Update manager.php
added description and blank lines in getUserGroupIds
Update manager.php
defined $uid in getUserGroupIds
Update manager.php
Update manager.php
Update manager.php
clean up function getUserGroupIds
clean up of function getUserGroupIds and improved caching mechanism of cachedUserGroupIds
modified caching mechanism in getUserGroupIds
removed cachedUserGroupIds, instead changed indexing in getUserGroups to groupId
adapted tests for a groupId indexed group array
---
lib/private/group/manager.php | 17 ++++++++++++-----
tests/lib/group/manager.php | 20 ++++++++++----------
2 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php
index 58a2392..816e7b4 100644
--- a/lib/private/group/manager.php
+++ b/lib/private/group/manager.php
@@ -48,6 +48,7 @@ class Manager extends PublicEmitter implements IGroupManager {
*/
private $cachedUserGroups = array();
+
/**
* @param \OC\User\Manager $userManager
*/
@@ -180,18 +181,24 @@ class Manager extends PublicEmitter implements IGroupManager {
$groups[$groupId] = $this->get($groupId);
}
}
- $this->cachedUserGroups[$uid] = array_values($groups);
+ $this->cachedUserGroups[$uid] = $groups;
return $this->cachedUserGroups[$uid];
}
+
/**
+ * get a list of group ids for a user
* @param \OC\User\User $user
- * @return array with group names
+ * @return array with group ids
*/
public function getUserGroupIds($user) {
$groupIds = array();
- foreach ($this->backends as $backend) {
- $groupIds = array_merge($groupIds, $backend->getUserGroups($user->getUID()));
-
+ $userId = $user->getUID();
+ if (isset($this->cachedUserGroups[$userId])) {
+ return array_keys($this->cachedUserGroups[$userId]);
+ } else {
+ foreach ($this->backends as $backend) {
+ $groupIds = array_merge($groupIds, $backend->getUserGroups($userId));
+ }
}
return $groupIds;
}
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index 70d9783..e4b3a52 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -190,7 +190,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
$groups = $manager->search('1');
$this->assertEquals(1, count($groups));
- $group1 = $groups[0];
+ $group1 = reset($groups);
$this->assertEquals('group1', $group1->getGID());
}
@@ -229,8 +229,8 @@ class Manager extends \PHPUnit_Framework_TestCase {
$groups = $manager->search('1');
$this->assertEquals(2, count($groups));
- $group1 = $groups[0];
- $group12 = $groups[1];
+ $group1 = reset($groups);
+ $group12 = next($groups);
$this->assertEquals('group1', $group1->getGID());
$this->assertEquals('group12', $group12->getGID());
}
@@ -270,8 +270,8 @@ class Manager extends \PHPUnit_Framework_TestCase {
$groups = $manager->search('1', 2, 1);
$this->assertEquals(2, count($groups));
- $group1 = $groups[0];
- $group12 = $groups[1];
+ $group1 = reset($groups);
+ $group12 = next($groups);
$this->assertEquals('group1', $group1->getGID());
$this->assertEquals('group12', $group12->getGID());
}
@@ -300,7 +300,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
$groups = $manager->getUserGroups(new User('user1', $userBackend));
$this->assertEquals(1, count($groups));
- $group1 = $groups[0];
+ $group1 = reset($groups);
$this->assertEquals('group1', $group1->getGID());
}
@@ -340,8 +340,8 @@ class Manager extends \PHPUnit_Framework_TestCase {
$groups = $manager->getUserGroups(new User('user1', $userBackend));
$this->assertEquals(2, count($groups));
- $group1 = $groups[0];
- $group2 = $groups[1];
+ $group1 = reset($groups);
+ $group2 = next($groups);
$this->assertEquals('group1', $group1->getGID());
$this->assertEquals('group2', $group2->getGID());
}
@@ -727,7 +727,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
// check result
$groups = $manager->getUserGroups($user1);
$this->assertEquals(1, count($groups));
- $group1 = $groups[0];
+ $group1 = reset($groups);
$this->assertEquals('group1', $group1->getGID());
}
@@ -768,7 +768,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
$user1 = new User('user1', null);
$groups = $manager->getUserGroups($user1);
$this->assertEquals(1, count($groups));
- $group1 = $groups[0];
+ $group1 = reset($groups);
$this->assertEquals('group1', $group1->getGID());
// remove user
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list