[Pkg-owncloud-commits] [owncloud] 03/15: Backport of #15592 to stable8

David Prévot taffit at moszumanska.debian.org
Thu Jul 2 18:39:08 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.0.5RC1
in repository owncloud.

commit 5e555f18b161a6ac9a97c2fe980c89bd237575b6
Author: Thomas Müller <thomas.mueller at tmit.eu>
Date:   Tue Apr 14 11:00:20 2015 +0200

    Backport of #15592 to stable8
    
    Avoid php message "Invalid argument supplied for foreach()" - refs #15590
    
    Remove unneeded comments
---
 lib/private/group/manager.php |  6 ++++--
 tests/lib/group/manager.php   | 22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php
index 8dcf14f..56b82c4 100644
--- a/lib/private/group/manager.php
+++ b/lib/private/group/manager.php
@@ -184,8 +184,10 @@ class Manager extends PublicEmitter implements IGroupManager {
 		$groups = array();
 		foreach ($this->backends as $backend) {
 			$groupIds = $backend->getUserGroups($uid);
-			foreach ($groupIds as $groupId) {
-				$groups[$groupId] = $this->get($groupId);
+			if (is_array($groupIds)) {
+				foreach ($groupIds as $groupId) {
+					$groups[$groupId] = $this->get($groupId);
+				}
 			}
 		}
 		$this->cachedUserGroups[$uid] = $groups;
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index e3462ca..80b7951 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -846,4 +846,26 @@ class Manager extends \Test\TestCase {
 		$groups = $manager->getUserGroups($user1);
 		$this->assertEquals(array(), $groups);
 	}
+
+	public function testGetUserIdGroups() {
+		/**
+		 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
+		 */
+		$backend = $this->getMock('\OC_Group_Database');
+		$backend->expects($this->any())
+			->method('getUserGroups')
+			->with('user1')
+			->will($this->returnValue(null));
+
+		/**
+		 * @var \OC\User\Manager $userManager
+		 */
+		$userManager = $this->getMock('\OC\User\Manager');
+		$manager = new \OC\Group\Manager($userManager);
+		$manager->addBackend($backend);
+
+		$groups = $manager->getUserIdGroups('user1');
+		$this->assertEquals([], $groups);
+	}
+
 }

-- 
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