aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2023-01-02 17:10:31 +0100
committerCôme Chilliet <come.chilliet@nextcloud.com>2023-04-27 12:00:45 +0200
commitb6c17c6ce76080df0e291f60a85c0e42afab8f39 (patch)
tree3b26ccfc21ffe384a0c972d37a1ae2f12c7e7da5
parent6385a5af36957cac4e1beed531d941129eb3a5a0 (diff)
downloadnextcloud-server-b6c17c6ce76080df0e291f60a85c0e42afab8f39.tar.gz
nextcloud-server-b6c17c6ce76080df0e291f60a85c0e42afab8f39.zip
Clear up return types
usersInGroup index by int for BC, searchInGroup index by uid (string). Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r--apps/user_ldap/lib/Access.php5
-rw-r--r--apps/user_ldap/lib/Group_LDAP.php11
-rw-r--r--apps/user_ldap/lib/Group_Proxy.php2
-rw-r--r--lib/private/Group/Backend.php2
-rw-r--r--lib/private/Group/Database.php4
-rw-r--r--lib/private/Group/Group.php2
-rw-r--r--lib/public/Group/Backend/ISearchableGroupBackend.php3
-rw-r--r--lib/public/GroupInterface.php2
-rw-r--r--tests/lib/Group/ManagerTest.php4
-rw-r--r--tests/lib/Util/Group/Dummy.php2
10 files changed, 21 insertions, 16 deletions
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index 9a97a28c376..3f120caefe6 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -631,7 +631,7 @@ class Access extends LDAPUtility {
* gives back the user names as they are used ownClod internally
*
* @param array $ldapUsers as returned by fetchList()
- * @return array an array with the user names to use in Nextcloud
+ * @return array<int,string> an array with the user names to use in Nextcloud
*
* gives back the user names as they are used ownClod internally
* @throws \Exception
@@ -644,7 +644,7 @@ class Access extends LDAPUtility {
* gives back the group names as they are used ownClod internally
*
* @param array $ldapGroups as returned by fetchList()
- * @return array an array with the group names to use in Nextcloud
+ * @return array<int,string> an array with the group names to use in Nextcloud
*
* gives back the group names as they are used ownClod internally
* @throws \Exception
@@ -655,6 +655,7 @@ class Access extends LDAPUtility {
/**
* @param array[] $ldapObjects as returned by fetchList()
+ * @return array<int,string>
* @throws \Exception
*/
private function ldap2NextcloudNames(array $ldapObjects, bool $isUsers): array {
diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php
index fac71093665..84267171d37 100644
--- a/apps/user_ldap/lib/Group_LDAP.php
+++ b/apps/user_ldap/lib/Group_LDAP.php
@@ -466,7 +466,7 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I
}
/**
- * @return array A list of users that have the given group as gid number
+ * @return array<int,string> A list of users that have the given group as gid number
* @throws ServerNotAvailableException
*/
public function getUsersInGidNumber(
@@ -591,6 +591,7 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I
/**
* @throws ServerNotAvailableException
+ * @return array<int,string>
*/
public function getUsersInPrimaryGroup(
string $groupDN,
@@ -840,7 +841,7 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I
* @param string $search
* @param int $limit
* @param int $offset
- * @return array with user ids
+ * @return array<int,string> user ids
* @throws Exception
* @throws ServerNotAvailableException
*/
@@ -909,7 +910,11 @@ class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, I
if (empty($ldap_users)) {
break;
}
- $groupUsers[] = $this->access->dn2username($ldap_users[0]['dn'][0]);
+ $uid = $this->access->dn2username($ldap_users[0]['dn'][0]);
+ if (!$uid) {
+ break;
+ }
+ $groupUsers[] = $uid;
break;
default:
//we got DNs, check if we need to filter by search or we can give back all of them
diff --git a/apps/user_ldap/lib/Group_Proxy.php b/apps/user_ldap/lib/Group_Proxy.php
index 74655840f47..5f8d0562fd9 100644
--- a/apps/user_ldap/lib/Group_Proxy.php
+++ b/apps/user_ldap/lib/Group_Proxy.php
@@ -171,7 +171,7 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface, IGroupLDAP, IGet
/**
* get a list of all users in a group
*
- * @return string[] with user ids
+ * @return array<int,string> user ids
*/
public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
$this->setup();
diff --git a/lib/private/Group/Backend.php b/lib/private/Group/Backend.php
index 037cdacf445..1e3e5ef1164 100644
--- a/lib/private/Group/Backend.php
+++ b/lib/private/Group/Backend.php
@@ -126,7 +126,7 @@ abstract class Backend implements \OCP\GroupInterface {
* @param string $search
* @param int $limit
* @param int $offset
- * @return array an array of user ids
+ * @return array<int,string> an array of user ids
*/
public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
return [];
diff --git a/lib/private/Group/Database.php b/lib/private/Group/Database.php
index 13e4906c298..569cfa5007f 100644
--- a/lib/private/Group/Database.php
+++ b/lib/private/Group/Database.php
@@ -333,10 +333,10 @@ class Database extends ABackend implements
* @param string $search
* @param int $limit
* @param int $offset
- * @return array<string> an array of user ids
+ * @return array<int,string> an array of user ids
*/
public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0): array {
- return array_map(fn ($user) => $user->getUid(), $this->searchInGroup($gid, $search, $limit, $offset));
+ return array_values(array_map(fn ($user) => $user->getUid(), $this->searchInGroup($gid, $search, $limit, $offset)));
}
public function searchInGroup(string $gid, string $search = '', int $limit = -1, int $offset = 0): array {
diff --git a/lib/private/Group/Group.php b/lib/private/Group/Group.php
index f70221de8bd..c72a7826fd0 100644
--- a/lib/private/Group/Group.php
+++ b/lib/private/Group/Group.php
@@ -251,7 +251,7 @@ class Group implements IGroup {
$users = [];
foreach ($this->backends as $backend) {
if ($backend instanceof ISearchableGroupBackend) {
- $users = array_merge($users, $backend->searchInGroup($this->gid, $search, $limit ?? -1, $offset ?? 0));
+ $users = array_merge($users, array_values($backend->searchInGroup($this->gid, $search, $limit ?? -1, $offset ?? 0)));
} else {
$userIds = $backend->usersInGroup($this->gid, $search, $limit ?? -1, $offset ?? 0);
$userManager = \OCP\Server::get(IUserManager::class);
diff --git a/lib/public/Group/Backend/ISearchableGroupBackend.php b/lib/public/Group/Backend/ISearchableGroupBackend.php
index 4e03680f75a..e5861d2814c 100644
--- a/lib/public/Group/Backend/ISearchableGroupBackend.php
+++ b/lib/public/Group/Backend/ISearchableGroupBackend.php
@@ -29,7 +29,6 @@ use OCP\IUser;
* @since 26.0.0
*/
interface ISearchableGroupBackend {
-
/**
* @brief Get a list of users matching the given search parameters.
*
@@ -45,7 +44,7 @@ interface ISearchableGroupBackend {
* want to search. This can be empty to get all the users.
* @param int $limit The limit of results
* @param int $offset The offset of the results
- * @return IUser[]
+ * @return array<string,IUser> Users indexed by uid
* @since 26.0.0
*/
public function searchInGroup(string $gid, string $search = '', int $limit = -1, int $offset = 0): array;
diff --git a/lib/public/GroupInterface.php b/lib/public/GroupInterface.php
index 7a3c3960541..726921920af 100644
--- a/lib/public/GroupInterface.php
+++ b/lib/public/GroupInterface.php
@@ -112,7 +112,7 @@ interface GroupInterface {
* @param string $search
* @param int $limit
* @param int $offset
- * @return array an array of user ids
+ * @return array<int,string> an array of user ids
* @since 4.5.0
* @deprecated 26.0.0 Use searchInGroup instead, for performance reasons
*/
diff --git a/tests/lib/Group/ManagerTest.php b/tests/lib/Group/ManagerTest.php
index 1bdb2219346..186f9d619a2 100644
--- a/tests/lib/Group/ManagerTest.php
+++ b/tests/lib/Group/ManagerTest.php
@@ -737,7 +737,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->once())
->method('searchInGroup')
->with('testgroup', '', -1, 0)
- ->willReturn([$this->getTestUser('user2'), $this->getTestUser('user33')]);
+ ->willReturn(['user2' => $this->getTestUser('user2'), 'user33' => $this->getTestUser('user33')]);
$this->userManager->expects($this->never())->method('get');
@@ -793,7 +793,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->once())
->method('searchInGroup')
->with('testgroup', '', 1, 1)
- ->willReturn([$this->getTestUser('user33')]);
+ ->willReturn(['user33' => $this->getTestUser('user33')]);
$this->userManager->expects($this->never())->method('get');
diff --git a/tests/lib/Util/Group/Dummy.php b/tests/lib/Util/Group/Dummy.php
index 2d86e45cfc1..a864c8ce9d9 100644
--- a/tests/lib/Util/Group/Dummy.php
+++ b/tests/lib/Util/Group/Dummy.php
@@ -208,7 +208,7 @@ class Dummy extends ABackend implements ICreateGroupBackend, IDeleteGroupBackend
$result = [];
foreach ($this->groups[$gid] as $user) {
if (stripos($user, $search) !== false) {
- $result[] = new DummyUser($user, '');
+ $result[$user] = new DummyUser($user, '');
}
}
return $result;