Merge pull request #57100 from nextcloud/fix/remove-iservercontainer-from-user-ldap
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
Psalm static code analysis / static-code-analysis-strict (push) Waiting to run

fix(user_ldap): Remove usages of deprecated IServerContainer
This commit is contained in:
Carl Schwan 2026-03-02 17:38:52 +01:00 committed by GitHub
commit 5fa368c41c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 94 additions and 209 deletions

View file

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@ -8,7 +10,6 @@ namespace OCA\User_LDAP\AppInfo;
use Closure;
use OCA\Files_External\Service\BackendService;
use OCA\User_LDAP\Controller\RenewPasswordController;
use OCA\User_LDAP\Events\GroupBackendRegistered;
use OCA\User_LDAP\Events\UserBackendRegistered;
use OCA\User_LDAP\Group_Proxy;
@ -30,16 +31,12 @@ use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\IAppContainer;
use OCP\AppFramework\Services\IAppConfig;
use OCP\AppFramework\Services\IInitialState;
use OCP\Config\IUserConfig;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IAvatarManager;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\Image;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Notification\IManager as INotificationManager;
use OCP\Share\IManager as IShareManager;
@ -53,33 +50,11 @@ class Application extends App implements IBootstrap {
public function __construct() {
parent::__construct(self::APP_ID);
$container = $this->getContainer();
/**
* Controller
*/
$container->registerService('RenewPasswordController', function (ContainerInterface $appContainer) {
return new RenewPasswordController(
$appContainer->get('AppName'),
$appContainer->get(IRequest::class),
$appContainer->get(IUserManager::class),
$appContainer->get(IConfig::class),
$appContainer->get(IUserConfig::class),
$appContainer->get(IL10N::class),
$appContainer->get('Session'),
$appContainer->get(IURLGenerator::class),
$appContainer->get(IInitialState::class),
);
});
$container->registerService(ILDAPWrapper::class, function (ContainerInterface $appContainer) {
return new LDAP(
$appContainer->get(IConfig::class)->getSystemValueString('ldap_log_file')
);
});
}
public function register(IRegistrationContext $context): void {
$context->registerServiceAlias(ILDAPWrapper::class, LDAP::class);
$context->registerNotifierService(Notifier::class);
$context->registerService(

View file

@ -8,11 +8,8 @@
namespace OCA\User_LDAP\Command;
use OCA\User_LDAP\Group_Proxy;
use OCA\User_LDAP\Helper;
use OCA\User_LDAP\LDAP;
use OCA\User_LDAP\User_Proxy;
use OCP\IConfig;
use OCP\Server;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
@ -82,10 +79,6 @@ class Search extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output): int {
$helper = Server::get(Helper::class);
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldapWrapper = new LDAP();
$offset = (int)$input->getOption('offset');
$limit = (int)$input->getOption('limit');
$this->validateOffsetAndLimit($offset, $limit);

View file

@ -10,14 +10,19 @@ namespace OCA\User_LDAP\Command;
use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\ConnectionFactory;
use OCA\User_LDAP\Helper;
use OCA\User_LDAP\LDAP;
use OCP\Server;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class SetConfig extends Command {
public function __construct(
private readonly Helper $helper,
private readonly ConnectionFactory $connectionFactory,
) {
parent::__construct();
}
protected function configure(): void {
$this
->setName('ldap:set-config')
@ -41,8 +46,7 @@ class SetConfig extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output): int {
$helper = Server::get(Helper::class);
$availableConfigs = $helper->getServerConfigurationPrefixes();
$availableConfigs = $this->helper->getServerConfigurationPrefixes();
$configID = $input->getArgument('configID');
if (!in_array($configID, $availableConfigs)) {
$output->writeln('Invalid configID');
@ -65,7 +69,6 @@ class SetConfig extends Command {
$configHolder->$key = $value;
$configHolder->saveConfiguration();
$connectionFactory = new ConnectionFactory(new LDAP());
$connectionFactory->get($configID)->clearCache();
$this->connectionFactory->get($configID)->clearCache();
}
}

View file

@ -23,8 +23,6 @@ class Sync extends TimedJob {
public const MAX_INTERVAL = 12 * 60 * 60; // 12h
public const MIN_INTERVAL = 30 * 60; // 30min
protected LDAP $ldap;
public function __construct(
ITimeFactory $timeFactory,
private IConfig $config,
@ -42,7 +40,6 @@ class Sync extends TimedJob {
self::MIN_INTERVAL
)
);
$this->ldap = new LDAP($this->config->getSystemValueString('ldap_log_file'));
}
/**
@ -253,11 +250,4 @@ class Sync extends TimedJob {
}
return $prefixes[$i];
}
/**
* Only used in tests
*/
public function overwritePropertiesForTest(LDAP $ldapWrapper): void {
$this->ldap = $ldapWrapper;
}
}

View file

@ -18,23 +18,21 @@ use Psr\Log\LoggerInterface;
class LDAP implements ILDAPWrapper {
protected array $curArgs = [];
protected LoggerInterface $logger;
protected IConfig $config;
private ?LdapDataCollector $dataCollector = null;
protected string $logFile = '';
public function __construct(
protected string $logFile = '',
IProfiler $profiler,
protected IConfig $config,
protected LoggerInterface $logger,
) {
/** @var IProfiler $profiler */
$profiler = Server::get(IProfiler::class);
if ($profiler->isEnabled()) {
$this->dataCollector = new LdapDataCollector();
$profiler->add($this->dataCollector);
}
$this->logger = Server::get(LoggerInterface::class);
$this->config = Server::get(IConfig::class);
$this->logFile = $this->config->getSystemValueString('ldap_log_file');
}
/**

View file

@ -5,38 +5,38 @@
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\User_LDAP;
use OCA\User_LDAP\User\DeletedUsersIndex;
use OCP\IServerContainer;
use OCP\GroupInterface;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\LDAP\IDeletionFlagSupport;
use OCP\LDAP\ILDAPProvider;
use OCP\UserInterface;
use Psr\Log\LoggerInterface;
/**
* LDAP provider for public access to the LDAP backend.
*/
class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport {
private $userBackend;
private $groupBackend;
private $logger;
private IUserLDAP&UserInterface $userBackend;
private IGroupLDAP&GroupInterface $groupBackend;
/**
* Create new LDAPProvider
* @param IServerContainer $serverContainer
* @param Helper $helper
* @param DeletedUsersIndex $deletedUsersIndex
* @throws \Exception if user_ldap app was not enabled
*/
public function __construct(
IServerContainer $serverContainer,
IUserManager $userManager,
IGroupManager $groupManager,
private Helper $helper,
private DeletedUsersIndex $deletedUsersIndex,
private LoggerInterface $logger,
) {
$this->logger = $serverContainer->get(LoggerInterface::class);
$userBackendFound = false;
$groupBackendFound = false;
foreach ($serverContainer->getUserManager()->getBackends() as $backend) {
foreach ($userManager->getBackends() as $backend) {
$this->logger->debug('instance ' . get_class($backend) . ' user backend.', ['app' => 'user_ldap']);
if ($backend instanceof IUserLDAP) {
$this->userBackend = $backend;
@ -44,7 +44,7 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport {
break;
}
}
foreach ($serverContainer->getGroupManager()->getBackends() as $backend) {
foreach ($groupManager->getBackends() as $backend) {
$this->logger->debug('instance ' . get_class($backend) . ' group backend.', ['app' => 'user_ldap']);
if ($backend instanceof IGroupLDAP) {
$this->groupBackend = $backend;

View file

@ -1,20 +1,22 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\User_LDAP;
use OCP\IServerContainer;
use OCP\LDAP\ILDAPProvider;
use OCP\LDAP\ILDAPProviderFactory;
use Psr\Container\ContainerInterface;
class LDAPProviderFactory implements ILDAPProviderFactory {
public function __construct(
/** * @var IServerContainer */
private IServerContainer $serverContainer,
private ContainerInterface $serverContainer,
) {
}

View file

@ -29,6 +29,7 @@ use OCP\IConfig;
use OCP\Image;
use OCP\IUserManager;
use OCP\Notification\IManager as INotificationManager;
use OCP\Profiler\IProfiler;
use OCP\Server;
use OCP\Share\IManager;
use PHPUnit\Framework\MockObject\MockObject;
@ -242,7 +243,11 @@ class AccessTest extends TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider(methodName: 'dnInputDataProvider')]
public function testStringResemblesDNLDAPmod(string $input, array|bool $interResult, bool $expectedResult): void {
[, $con, $um, $helper] = $this->getConnectorAndLdapMock();
$lw = new LDAP();
$lw = new LDAP(
$this->createMock(IProfiler::class),
$this->createMock(IConfig::class),
$this->createMock(LoggerInterface::class),
);
$access = new Access($lw, $con, $um, $helper, $this->ncUserManager, $this->logger, $this->appConfig, $this->dispatcher);
if (!function_exists('ldap_explode_dn')) {

View file

@ -76,8 +76,6 @@ class SyncTest extends TestCase {
$this->connectionFactory,
$this->accessFactory,
);
$this->sync->overwritePropertiesForTest($this->ldapWrapper);
}
public static function intervalDataProvider(): array {

View file

@ -7,7 +7,6 @@ declare(strict_types=1);
*/
namespace OCA\User_LDAP\Tests;
use OC\Config;
use OC\User\Manager;
use OCA\User_LDAP\Access;
use OCA\User_LDAP\Connection;
@ -16,12 +15,12 @@ use OCA\User_LDAP\Helper;
use OCA\User_LDAP\IGroupLDAP;
use OCA\User_LDAP\ILDAPWrapper;
use OCA\User_LDAP\IUserLDAP;
use OCA\User_LDAP\LDAPProviderFactory;
use OCA\User_LDAP\LDAPProvider;
use OCA\User_LDAP\User\DeletedUsersIndex;
use OCA\User_LDAP\User_LDAP;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IServerContainer;
use OCP\Server;
use Psr\Log\LoggerInterface;
@ -33,21 +32,6 @@ use Psr\Log\LoggerInterface;
*/
#[\PHPUnit\Framework\Attributes\Group(name: 'DB')]
class LDAPProviderTest extends \Test\TestCase {
private function getServerMock(IUserLDAP $userBackend, IGroupLDAP $groupBackend) {
$server = $this->getMockBuilder('OC\Server')
->onlyMethods(['getUserManager', 'getGroupManager'])
->setConstructorArgs(['', new Config(\OC::$configDir)])
->getMock();
$server->expects($this->any())
->method('getUserManager')
->willReturn($this->getUserManagerMock($userBackend));
$server->expects($this->any())
->method('getGroupManager')
->willReturn($this->getGroupManagerMock($groupBackend));
return $server;
}
private function getUserManagerMock(IUserLDAP $userBackend) {
$userManager = $this->getMockBuilder(Manager::class)
->onlyMethods(['getBackends'])
@ -83,9 +67,14 @@ class LDAPProviderTest extends \Test\TestCase {
return $groupBackend;
}
private function getLDAPProvider(IServerContainer $serverContainer) {
$factory = new LDAPProviderFactory($serverContainer);
return $factory->getLDAPProvider();
private function getLDAPProvider(IUserLDAP $userBackend, IGroupLDAP $groupBackend): LDAPProvider {
return new LDAPProvider(
$this->getUserManagerMock($userBackend),
$this->getGroupManagerMock($groupBackend),
Server::get(Helper::class),
Server::get(DeletedUsersIndex::class),
$this->createMock(LoggerInterface::class),
);
}
@ -99,9 +88,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getUserDN('nonexisting_user');
}
@ -125,9 +112,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($userAccess);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org',
$ldapProvider->getUserDN('existing_user'));
}
@ -145,9 +130,7 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend->expects($this->any())->method('groupExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->getGroupDN('nonexisting_group');
}
@ -170,9 +153,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($groupAccess);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$this->assertEquals('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org',
$ldapProvider->getGroupDN('existing_group'));
}
@ -186,9 +167,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('dn2UserName')
->willReturn('existing_user');
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals('existing_user',
$ldapProvider->getUserName('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
}
@ -196,11 +175,9 @@ class LDAPProviderTest extends \Test\TestCase {
public function testDNasBaseParameter(): void {
$userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$helper = Server::get(Helper::class);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals(
$helper->DNasBaseParameter('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'),
$ldapProvider->DNasBaseParameter('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
@ -209,11 +186,9 @@ class LDAPProviderTest extends \Test\TestCase {
public function testSanitizeDN(): void {
$userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$helper = Server::get(Helper::class);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals(
$helper->sanitizeDN('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'),
$ldapProvider->sanitizeDN('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
@ -227,9 +202,7 @@ class LDAPProviderTest extends \Test\TestCase {
$userBackend = $this->createMock(User_LDAP::class);
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getLDAPConnection('nonexisting_user');
}
@ -246,9 +219,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getNewLDAPConnection')
->willReturn($ldapConnection);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals($ldapConnection, $ldapProvider->getLDAPConnection('existing_user'));
}
@ -265,9 +236,7 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend->expects($this->any())->method('groupExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->getGroupLDAPConnection('nonexisting_group');
}
@ -287,9 +256,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getNewLDAPConnection')
->willReturn($ldapConnection);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$this->assertEquals($ldapConnection, $ldapProvider->getGroupLDAPConnection('existing_group'));
}
@ -304,9 +271,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getLDAPBaseUsers('nonexisting_user');
}
@ -352,9 +317,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals($bases[1], $ldapProvider->getLDAPBaseUsers('existing_user'));
}
@ -369,9 +332,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getLDAPBaseGroups('nonexisting_user');
}
@ -410,9 +371,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals($bases[0], $ldapProvider->getLDAPBaseGroups('existing_user'));
}
@ -427,9 +386,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->clearCache('nonexisting_user');
}
@ -454,9 +411,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->clearCache('existing_user');
$this->addToAssertionCount(1);
}
@ -475,9 +430,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$groupBackend->expects($this->any())->method('groupExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->clearGroupCache('nonexisting_group');
}
@ -503,9 +456,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->clearGroupCache('existing_group');
$this->addToAssertionCount(1);
}
@ -519,26 +470,22 @@ class LDAPProviderTest extends \Test\TestCase {
->method('dn2UserName')
->willReturn('existing_user');
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertTrue($ldapProvider->dnExists('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
}
public function testFlagRecord(): void {
$userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->flagRecord('existing_user');
$this->addToAssertionCount(1);
}
public function testUnflagRecord(): void {
$userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->unflagRecord('existing_user');
$this->addToAssertionCount(1);
}
@ -554,9 +501,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getLDAPDisplayNameField('nonexisting_user');
}
@ -581,9 +526,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals('displayName', $ldapProvider->getLDAPDisplayNameField('existing_user'));
}
@ -598,9 +541,7 @@ class LDAPProviderTest extends \Test\TestCase {
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider->getLDAPEmailField('nonexisting_user');
}
@ -625,9 +566,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $this->getDefaultGroupBackendMock());
$this->assertEquals('mail', $ldapProvider->getLDAPEmailField('existing_user'));
}
@ -646,9 +585,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('groupExists')
->willReturn(false);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->getLDAPGroupMemberAssoc('nonexisting_group');
}
@ -676,9 +613,7 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$this->assertEquals('assoc_type', $ldapProvider->getLDAPGroupMemberAssoc('existing_group'));
}
@ -692,9 +627,8 @@ class LDAPProviderTest extends \Test\TestCase {
->with('admin')
->willReturn(false);
$groupBackend = $this->createMock(Group_LDAP::class);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->getMultiValueUserAttribute('admin', 'mailAlias');
}
@ -719,9 +653,8 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getLDAPAccess')
->willReturn($access);
$groupBackend = $this->createMock(Group_LDAP::class);
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$ldapProvider->getMultiValueUserAttribute('admin', 'mailAlias');
}
@ -756,9 +689,8 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend = $this->getMockBuilder(Group_LDAP::class)
->disableOriginalConstructor()
->getMock();
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$values = $ldapProvider->getMultiValueUserAttribute('admin', 'mailAlias');
self::assertCount(0, $values);
@ -795,9 +727,8 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend = $this->getMockBuilder(Group_LDAP::class)
->disableOriginalConstructor()
->getMock();
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$values = $ldapProvider->getMultiValueUserAttribute('admin', 'mailAlias');
self::assertCount(2, $values);
@ -834,9 +765,8 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend = $this->getMockBuilder(Group_LDAP::class)
->disableOriginalConstructor()
->getMock();
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$value = $ldapProvider->getUserAttribute('admin', 'mailAlias');
self::assertNull($value);
@ -873,9 +803,8 @@ class LDAPProviderTest extends \Test\TestCase {
$groupBackend = $this->getMockBuilder(Group_LDAP::class)
->disableOriginalConstructor()
->getMock();
$server = $this->getServerMock($userBackend, $groupBackend);
$ldapProvider = $this->getLDAPProvider($server);
$ldapProvider = $this->getLDAPProvider($userBackend, $groupBackend);
$value = $ldapProvider->getUserAttribute('admin', 'mailAlias');
self::assertEquals('aliasA@test.local', $value);

View file

@ -8,7 +8,10 @@ declare(strict_types=1);
namespace OCA\User_LDAP\Tests;
use OCA\User_LDAP\LDAP;
use OCP\IConfig;
use OCP\Profiler\IProfiler;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class LDAPTest extends TestCase {
@ -18,6 +21,11 @@ class LDAPTest extends TestCase {
parent::setUp();
$this->ldap = $this->getMockBuilder(LDAP::class)
->onlyMethods(['invokeLDAPMethod'])
->setConstructorArgs([
$this->createMock(IProfiler::class),
$this->createMock(IConfig::class),
$this->createMock(LoggerInterface::class),
])
->getMock();
}

View file

@ -2575,8 +2575,6 @@
'loginName2UserName'
)]]></code>
<code><![CDATA[dispatch]]></code>
<code><![CDATA[registerService]]></code>
<code><![CDATA[registerService]]></code>
</DeprecatedMethod>
</file>
<file src="apps/user_ldap/lib/Configuration.php">
@ -2617,20 +2615,6 @@
<code><![CDATA[$i]]></code>
</InvalidOperand>
</file>
<file src="apps/user_ldap/lib/LDAPProvider.php">
<DeprecatedInterface>
<code><![CDATA[IServerContainer]]></code>
</DeprecatedInterface>
<DeprecatedMethod>
<code><![CDATA[getGroupManager]]></code>
<code><![CDATA[getUserManager]]></code>
</DeprecatedMethod>
</file>
<file src="apps/user_ldap/lib/LDAPProviderFactory.php">
<DeprecatedInterface>
<code><![CDATA[private]]></code>
</DeprecatedInterface>
</file>
<file src="apps/user_ldap/lib/Mapping/AbstractMapping.php">
<DeprecatedMethod>
<code><![CDATA[getDatabasePlatform]]></code>