diff --git a/lib/private/group.php b/lib/private/group.php index 8dc3812920..bd9e3d37d1 100644 --- a/lib/private/group.php +++ b/lib/private/group.php @@ -187,12 +187,7 @@ class OC_Group { public static function getUserGroups($uid) { $user = self::$userManager->get($uid); if ($user) { - $groups = self::getManager()->getUserGroups($user); - $groupIds = array(); - foreach ($groups as $group) { - $groupIds[] = $group->getGID(); - } - return $groupIds; + return self::getManager()->getUserGroupIds($user); } else { return array(); } diff --git a/lib/private/group/manager.php b/lib/private/group/manager.php index dae6443e9d..3613c7547b 100644 --- a/lib/private/group/manager.php +++ b/lib/private/group/manager.php @@ -182,6 +182,18 @@ class Manager extends PublicEmitter { $this->cachedUserGroups[$uid] = array_values($groups); return $this->cachedUserGroups[$uid]; } + /** + * @param \OC\User\User $user + * @return array with group names + */ + public function getUserGroupIds($user) { + $groupIds = array(); + foreach ($this->backends as $backend) { + $groupIds = array_merge($groupIds, $backend->getUserGroups($user->getUID())); + + } + return $groupIds; + } /** * get a list of all display names in a group