Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2020-06-25 00:34:37 +0300
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>2020-06-25 11:06:29 +0300
commit43b8b0c14fd1476ec72295ed3cbb568ebeb10f23 (patch)
tree1b9583b809f301bad04e98ffe9f93fbc303ace63 /apps/user_ldap
parent8a0185d29b841925290eab6fc41e396be53cc19d (diff)
fix strings being passed where arrays where expected
also brought type hints up to internal API level Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r--apps/user_ldap/lib/Access.php25
-rw-r--r--apps/user_ldap/lib/Group_LDAP.php7
-rw-r--r--apps/user_ldap/tests/Group_LDAPTest.php6
-rw-r--r--apps/user_ldap/tests/Jobs/SyncTest.php14
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php18
5 files changed, 45 insertions, 25 deletions
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index 671f74825ba..b93d92b81dd 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -847,12 +847,8 @@ class Access extends LDAPUtility {
/**
* fetches a list of users according to a provided loginName and utilizing
* the login filter.
- *
- * @param string $loginName
- * @param array $attributes optional, list of attributes to read
- * @return array
*/
- public function fetchUsersByLoginName($loginName, $attributes = ['dn']) {
+ public function fetchUsersByLoginName(string $loginName, array $attributes = ['dn']): array {
$loginName = $this->escapeFilterPart($loginName);
$filter = str_replace('%uid', $loginName, $this->connection->ldapLoginFilter);
return $this->fetchListOfUsers($filter, $attributes);
@@ -872,15 +868,9 @@ class Access extends LDAPUtility {
}
/**
- * @param string $filter
- * @param string|string[] $attr
- * @param int $limit
- * @param int $offset
- * @param bool $forceApplyAttributes
- * @return array
* @throws \Exception
*/
- public function fetchListOfUsers($filter, $attr, $limit = null, $offset = null, $forceApplyAttributes = false) {
+ public function fetchListOfUsers(string $filter, array $attr, int $limit = null, int $offset = null, bool $forceApplyAttributes = false): array {
$ldapRecords = $this->searchUsers($filter, $attr, $limit, $offset);
$recordsToUpdate = $ldapRecords;
if (!$forceApplyAttributes) {
@@ -992,18 +982,9 @@ class Access extends LDAPUtility {
}
/**
- * executes an LDAP search, optimized for Users
- *
- * @param string $filter the LDAP filter for the search
- * @param string|string[] $attr optional, when a certain attribute shall be filtered out
- * @param integer $limit
- * @param integer $offset
- * @return array with the search result
- *
- * Executes an LDAP search
* @throws ServerNotAvailableException
*/
- public function searchUsers($filter, $attr = null, $limit = null, $offset = null) {
+ public function searchUsers(string $filter, array $attr = null, int $limit = null, int $offset = null): array {
$result = [];
foreach ($this->connection->ldapBaseUsers as $base) {
$result = array_merge($result, $this->search($filter, $base, $attr, $limit, $offset));
diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php
index a6cd9669c93..6b62f88123e 100644
--- a/apps/user_ldap/lib/Group_LDAP.php
+++ b/apps/user_ldap/lib/Group_LDAP.php
@@ -140,6 +140,7 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLD
//extra work if we don't get back user DNs
if (strtolower($this->access->connection->ldapGroupMemberAssocAttr) === 'memberuid') {
+ $requestAttributes = $this->access->userManager->getAttributes(true);
$dns = [];
$filterParts = [];
$bytes = 0;
@@ -153,13 +154,13 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLD
$filter = $this->access->combineFilterWithOr($filterParts);
$bytes = 0;
$filterParts = [];
- $users = $this->access->fetchListOfUsers($filter, 'dn', count($filterParts));
+ $users = $this->access->fetchListOfUsers($filter, $requestAttributes, count($filterParts));
$dns = array_merge($dns, $users);
}
}
if (count($filterParts) > 0) {
$filter = $this->access->combineFilterWithOr($filterParts);
- $users = $this->access->fetchListOfUsers($filter, 'dn', count($filterParts));
+ $users = $this->access->fetchListOfUsers($filter, $requestAttributes, count($filterParts));
$dns = array_merge($dns, $users);
}
$members = $dns;
@@ -989,7 +990,7 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLD
str_replace('%uid', $member, $this->access->connection->ldapLoginFilter),
$this->access->getFilterPartForUserSearch($search)
]);
- $ldap_users = $this->access->fetchListOfUsers($filter, 'dn', 1);
+ $ldap_users = $this->access->fetchListOfUsers($filter, ['dn'], 1);
if (count($ldap_users) < 1) {
continue;
}
diff --git a/apps/user_ldap/tests/Group_LDAPTest.php b/apps/user_ldap/tests/Group_LDAPTest.php
index 6a64a37f8c2..60b8b06b3cf 100644
--- a/apps/user_ldap/tests/Group_LDAPTest.php
+++ b/apps/user_ldap/tests/Group_LDAPTest.php
@@ -538,6 +538,9 @@ class Group_LDAPTest extends TestCase {
$access->expects($this->any())
->method('isDNPartOfBase')
->willReturn(true);
+ $access->expects($this->any())
+ ->method('combineFilterWithAnd')
+ ->willReturn('pseudo=filter');
$access->userManager = $this->createMock(Manager::class);
$groupBackend = new GroupLDAP($access, $pluginManager);
@@ -576,6 +579,9 @@ class Group_LDAPTest extends TestCase {
$access->expects($this->any())
->method('isDNPartOfBase')
->willReturn(true);
+ $access->expects($this->any())
+ ->method('combineFilterWithAnd')
+ ->willReturn('pseudo=filter');
$access->userManager = $this->createMock(Manager::class);
$groupBackend = new GroupLDAP($access, $pluginManager);
diff --git a/apps/user_ldap/tests/Jobs/SyncTest.php b/apps/user_ldap/tests/Jobs/SyncTest.php
index 5f2adbe7dd1..0971e31ae85 100644
--- a/apps/user_ldap/tests/Jobs/SyncTest.php
+++ b/apps/user_ldap/tests/Jobs/SyncTest.php
@@ -189,9 +189,16 @@ class SyncTest extends TestCase {
->with($connection)
->willReturn($access);
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
+
$access->expects($this->once())
->method('fetchListOfUsers')
->willReturn(array_pad([], $results, 'someUser'));
+ $access->expects($this->any())
+ ->method('combineFilterWithAnd')
+ ->willReturn('pseudo=filter');
$access->connection = $connection;
$access->userManager = $this->userManager;
@@ -356,9 +363,16 @@ class SyncTest extends TestCase {
->with($connection)
->willReturn($access);
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
+
$access->expects($this->once())
->method('fetchListOfUsers')
->willReturn(array_pad([], $runData['usersThisCycle'], 'someUser'));
+ $access->expects($this->any())
+ ->method('combineFilterWithAnd')
+ ->willReturn('pseudo=filter');
$access->connection = $connection;
$access->userManager = $this->userManager;
diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php
index 00ca6737175..bfdaa99ac00 100644
--- a/apps/user_ldap/tests/User_LDAPTest.php
+++ b/apps/user_ldap/tests/User_LDAPTest.php
@@ -183,6 +183,10 @@ class User_LDAPTest extends TestCase {
}
return false;
});
+
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
}
public function testCheckPasswordUidReturn() {
@@ -400,6 +404,10 @@ class User_LDAPTest extends TestCase {
->willReturnArgument(0);
$this->access->method('fetchUsersByLoginName')
->willReturn([]);
+
+ $this->access->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
}
public function testGetUsersNoParam() {
@@ -1065,6 +1073,9 @@ class User_LDAPTest extends TestCase {
->method('get')
->with($dn)
->willReturn($user);
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
$name = $backend->loginName2UserName($loginName);
$this->assertSame($username, $name);
@@ -1093,6 +1104,10 @@ class User_LDAPTest extends TestCase {
->method('writeToCache')
->with($this->equalTo('loginName2UserName-'.$loginName), false);
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
+
$backend = new UserLDAP($this->access, $this->config, $this->notificationManager, $this->session, $this->pluginManager);
$name = $backend->loginName2UserName($loginName);
$this->assertSame(false, $name);
@@ -1126,6 +1141,9 @@ class User_LDAPTest extends TestCase {
->method('get')
->with($dn)
->willReturn($offlineUser);
+ $this->userManager->expects($this->any())
+ ->method('getAttributes')
+ ->willReturn(['dn', 'uid', 'mail', 'displayname']);
$backend = new UserLDAP($this->access, $this->config, $this->notificationManager, $this->session, $this->pluginManager);
$name = $backend->loginName2UserName($loginName);