Merge pull request #18028 from nextcloud/enhancement/user-create-events
Add typed create user events
This commit is contained in:
commit
1d707cc349
12 changed files with 308 additions and 137 deletions
|
@ -30,6 +30,7 @@ use OCA\User_LDAP\Access;
|
|||
use OCA\User_LDAP\Connection;
|
||||
use OCA\User_LDAP\IGroupLDAP;
|
||||
use OCA\User_LDAP\IUserLDAP;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IServerContainer;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
@ -46,7 +47,7 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
|
||||
private function getServerMock(IUserLDAP $userBackend, IGroupLDAP $groupBackend) {
|
||||
$server = $this->getMockBuilder('OC\Server')
|
||||
->setMethods(['getUserManager', 'getBackends', 'getGroupManager'])
|
||||
|
@ -71,7 +72,11 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
private function getUserManagerMock(IUserLDAP $userBackend) {
|
||||
$userManager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods(['getBackends'])
|
||||
->setConstructorArgs([$this->createMock(IConfig::class), $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->createMock(IConfig::class),
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$userManager->expects($this->any())
|
||||
->method('getBackends')
|
||||
|
@ -92,9 +97,9 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
|
||||
private function getDefaultGroupBackendMock() {
|
||||
$groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
|
||||
->disableOriginalConstructor()
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
return $groupBackend;
|
||||
}
|
||||
|
||||
|
@ -102,8 +107,8 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$factory = new \OCA\User_LDAP\LDAPProviderFactory($serverContainer);
|
||||
return $factory->getLDAPProvider();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testGetUserDNUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -113,13 +118,13 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->getUserDN('nonexisting_user');
|
||||
}
|
||||
|
||||
|
||||
public function testGetUserDN() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods(['userExists', 'getLDAPAccess', 'username2dn'])
|
||||
|
@ -134,15 +139,15 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$userBackend->expects($this->any())
|
||||
->method($this->anything())
|
||||
->willReturnSelf();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org',
|
||||
$this->assertEquals('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org',
|
||||
$ldapProvider->getUserDN('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testGetGroupDNGroupIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Group id not found in LDAP');
|
||||
|
@ -190,7 +195,7 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org',
|
||||
$ldapProvider->getGroupDN('existing_group'));
|
||||
}
|
||||
}
|
||||
|
||||
public function testGetUserName() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
|
@ -200,27 +205,27 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$userBackend->expects($this->any())
|
||||
->method('dn2UserName')
|
||||
->willReturn('existing_user');
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals('existing_user',
|
||||
$this->assertEquals('existing_user',
|
||||
$ldapProvider->getUserName('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
|
||||
}
|
||||
|
||||
|
||||
public function testDNasBaseParameter() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods([])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals(
|
||||
$helper->DNasBaseParameter('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'),
|
||||
$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'));
|
||||
}
|
||||
|
||||
|
@ -229,18 +234,18 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->setMethods([])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals(
|
||||
$helper->sanitizeDN('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'),
|
||||
$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'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPConnectionUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -250,13 +255,13 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->getLDAPConnection('nonexisting_user');
|
||||
}
|
||||
|
||||
|
||||
public function testGetLDAPConnection() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods(['userExists', 'getNewLDAPConnection'])
|
||||
|
@ -268,14 +273,14 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$userBackend->expects($this->any())
|
||||
->method('getNewLDAPConnection')
|
||||
->willReturn(true);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertTrue($ldapProvider->getLDAPConnection('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testGetGroupLDAPConnectionGroupIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Group id not found in LDAP');
|
||||
|
@ -320,8 +325,8 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertTrue($ldapProvider->getGroupLDAPConnection('existing_group'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPBaseUsersUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -331,13 +336,13 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->getLDAPBaseUsers('nonexisting_user');
|
||||
}
|
||||
|
||||
|
||||
public function testGetLDAPBaseUsers() {
|
||||
$bases = [
|
||||
'ou=users,ou=foobar,dc=example,dc=org',
|
||||
|
@ -379,12 +384,12 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->willReturn($access);
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals($bases[1], $ldapProvider->getLDAPBaseUsers('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPBaseGroupsUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -394,13 +399,13 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->getLDAPBaseGroups('nonexisting_user');
|
||||
}
|
||||
|
||||
|
||||
public function testGetLDAPBaseGroups() {
|
||||
$bases = [
|
||||
'ou=groupd,ou=foobar,dc=example,dc=org',
|
||||
|
@ -435,12 +440,12 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->willReturn($access);
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals($bases[0], $ldapProvider->getLDAPBaseGroups('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testClearCacheUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -450,13 +455,13 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->clearCache('nonexisting_user');
|
||||
}
|
||||
|
||||
|
||||
public function testClearCache() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'clearCache'])
|
||||
|
@ -471,15 +476,15 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$userBackend->expects($this->any())
|
||||
->method($this->anything())
|
||||
->willReturnSelf();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->clearCache('existing_user');
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testClearGroupCacheGroupIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Group id not found in LDAP');
|
||||
|
@ -523,7 +528,7 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$ldapProvider->clearGroupCache('existing_group');
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
|
||||
|
||||
public function testDnExists() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods(['dn2UserName'])
|
||||
|
@ -532,40 +537,40 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$userBackend->expects($this->any())
|
||||
->method('dn2UserName')
|
||||
->willReturn('existing_user');
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertTrue($ldapProvider->dnExists('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'));
|
||||
}
|
||||
|
||||
|
||||
public function testFlagRecord() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods([])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->flagRecord('existing_user');
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
|
||||
|
||||
public function testUnflagRecord() {
|
||||
$userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
|
||||
->setMethods([])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
|
||||
|
||||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$ldapProvider->unflagRecord('existing_user');
|
||||
$this->addToAssertionCount(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPDisplayNameFieldUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -603,7 +608,7 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$this->assertEquals('displayName', $ldapProvider->getLDAPDisplayNameField('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPEmailFieldUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('User id not found in LDAP');
|
||||
|
@ -641,7 +646,7 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
$this->assertEquals('mail', $ldapProvider->getLDAPEmailField('existing_user'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testGetLDAPGroupMemberAssocUserIDNotFound() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Group id not found in LDAP');
|
||||
|
@ -687,6 +692,6 @@ class LDAPProviderTest extends \Test\TestCase {
|
|||
|
||||
$ldapProvider = $this->getLDAPProvider($server);
|
||||
$this->assertEquals('assoc_type', $ldapProvider->getLDAPGroupMemberAssoc('existing_group'));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -450,7 +450,9 @@ return array(
|
|||
'OCP\\User\\Backend\\IProvideAvatarBackend' => $baseDir . '/lib/public/User/Backend/IProvideAvatarBackend.php',
|
||||
'OCP\\User\\Backend\\ISetDisplayNameBackend' => $baseDir . '/lib/public/User/Backend/ISetDisplayNameBackend.php',
|
||||
'OCP\\User\\Backend\\ISetPasswordBackend' => $baseDir . '/lib/public/User/Backend/ISetPasswordBackend.php',
|
||||
'OCP\\User\\Events\\CreateUserEvent' => $baseDir . '/lib/public/User/Events/CreateUserEvent.php',
|
||||
'OCP\\User\\Events\\PostLoginEvent' => $baseDir . '/lib/public/User/Events/PostLoginEvent.php',
|
||||
'OCP\\User\\Events\\UserCreatedEvent' => $baseDir . '/lib/public/User/Events/UserCreatedEvent.php',
|
||||
'OCP\\Util' => $baseDir . '/lib/public/Util.php',
|
||||
'OCP\\WorkflowEngine\\EntityContext\\IDisplayName' => $baseDir . '/lib/public/WorkflowEngine/EntityContext/IDisplayName.php',
|
||||
'OCP\\WorkflowEngine\\EntityContext\\IDisplayText' => $baseDir . '/lib/public/WorkflowEngine/EntityContext/IDisplayText.php',
|
||||
|
|
|
@ -479,7 +479,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
|
|||
'OCP\\User\\Backend\\IProvideAvatarBackend' => __DIR__ . '/../../..' . '/lib/public/User/Backend/IProvideAvatarBackend.php',
|
||||
'OCP\\User\\Backend\\ISetDisplayNameBackend' => __DIR__ . '/../../..' . '/lib/public/User/Backend/ISetDisplayNameBackend.php',
|
||||
'OCP\\User\\Backend\\ISetPasswordBackend' => __DIR__ . '/../../..' . '/lib/public/User/Backend/ISetPasswordBackend.php',
|
||||
'OCP\\User\\Events\\CreateUserEvent' => __DIR__ . '/../../..' . '/lib/public/User/Events/CreateUserEvent.php',
|
||||
'OCP\\User\\Events\\PostLoginEvent' => __DIR__ . '/../../..' . '/lib/public/User/Events/PostLoginEvent.php',
|
||||
'OCP\\User\\Events\\UserCreatedEvent' => __DIR__ . '/../../..' . '/lib/public/User/Events/UserCreatedEvent.php',
|
||||
'OCP\\Util' => __DIR__ . '/../../..' . '/lib/public/Util.php',
|
||||
'OCP\\WorkflowEngine\\EntityContext\\IDisplayName' => __DIR__ . '/../../..' . '/lib/public/WorkflowEngine/EntityContext/IDisplayName.php',
|
||||
'OCP\\WorkflowEngine\\EntityContext\\IDisplayText' => __DIR__ . '/../../..' . '/lib/public/WorkflowEngine/EntityContext/IDisplayText.php',
|
||||
|
|
|
@ -317,9 +317,6 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
});
|
||||
$this->registerAlias('LazyRootFolder', \OCP\Files\IRootFolder::class);
|
||||
|
||||
$this->registerService(\OC\User\Manager::class, function (Server $c) {
|
||||
return new \OC\User\Manager($c->getConfig(), $c->getEventDispatcher());
|
||||
});
|
||||
$this->registerAlias('UserManager', \OC\User\Manager::class);
|
||||
$this->registerAlias(\OCP\IUserManager::class, \OC\User\Manager::class);
|
||||
|
||||
|
|
|
@ -33,12 +33,15 @@ namespace OC\User;
|
|||
|
||||
use OC\Hooks\PublicEmitter;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IGroup;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserBackend;
|
||||
use OCP\IUserManager;
|
||||
use OCP\User\Backend\IGetRealUIDBackend;
|
||||
use OCP\User\Events\CreateUserEvent;
|
||||
use OCP\User\Events\UserCreatedEvent;
|
||||
use OCP\UserInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
|
@ -72,17 +75,24 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/** @var EventDispatcherInterface */
|
||||
private $dispatcher;
|
||||
|
||||
public function __construct(IConfig $config, EventDispatcherInterface $dispatcher) {
|
||||
/** @var IEventDispatcher */
|
||||
private $eventDispatcher;
|
||||
|
||||
public function __construct(IConfig $config,
|
||||
EventDispatcherInterface $oldDispatcher,
|
||||
IEventDispatcher $eventDispatcher) {
|
||||
$this->config = $config;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->dispatcher = $oldDispatcher;
|
||||
$cachedUsers = &$this->cachedUsers;
|
||||
$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
|
||||
/** @var \OC\User\User $user */
|
||||
unset($cachedUsers[$user->getUID()]);
|
||||
});
|
||||
$this->eventDispatcher = $eventDispatcher;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -349,6 +359,7 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
}
|
||||
|
||||
$this->emit('\OC\User', 'preCreateUser', [$uid, $password]);
|
||||
$this->eventDispatcher->dispatchTyped(new CreateUserEvent($uid, $password));
|
||||
$state = $backend->createUser($uid, $password);
|
||||
if($state === false) {
|
||||
throw new \InvalidArgumentException($l->t('Could not create user'));
|
||||
|
@ -356,6 +367,7 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
$user = $this->getUserObject($uid, $backend);
|
||||
if ($user instanceof IUser) {
|
||||
$this->emit('\OC\User', 'postCreateUser', [$user, $password]);
|
||||
$this->eventDispatcher->dispatchTyped(new UserCreatedEvent($user, $password));
|
||||
}
|
||||
return $user;
|
||||
}
|
||||
|
@ -460,11 +472,11 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
->andWhere($queryBuilder->expr()->eq('configkey', $queryBuilder->createNamedParameter('enabled')))
|
||||
->andWhere($queryBuilder->expr()->eq('configvalue', $queryBuilder->createNamedParameter('false'), IQueryBuilder::PARAM_STR));
|
||||
|
||||
|
||||
|
||||
$result = $queryBuilder->execute();
|
||||
$count = $result->fetchColumn();
|
||||
$result->closeCursor();
|
||||
|
||||
|
||||
if ($count !== false) {
|
||||
$count = (int)$count;
|
||||
} else {
|
||||
|
@ -494,7 +506,7 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
$result = $queryBuilder->execute();
|
||||
$count = $result->fetchColumn();
|
||||
$result->closeCursor();
|
||||
|
||||
|
||||
if ($count !== false) {
|
||||
$count = (int)$count;
|
||||
} else {
|
||||
|
|
63
lib/public/User/Events/CreateUserEvent.php
Normal file
63
lib/public/User/Events/CreateUserEvent.php
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace OCP\User\Events;
|
||||
|
||||
use OCP\EventDispatcher\Event;
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
class CreateUserEvent extends Event {
|
||||
|
||||
/** @var string */
|
||||
private $uid;
|
||||
|
||||
/** @var string */
|
||||
private $password;
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function __construct(string $uid,
|
||||
string $password) {
|
||||
parent::__construct();
|
||||
$this->uid = $uid;
|
||||
$this->password = $password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function getUid(): string {
|
||||
return $this->uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function getPassword(): string {
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
}
|
71
lib/public/User/Events/UserCreatedEvent.php
Normal file
71
lib/public/User/Events/UserCreatedEvent.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace OCP\User\Events;
|
||||
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\IUser;
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
class UserCreatedEvent extends Event {
|
||||
|
||||
/** @var IUser */
|
||||
private $user;
|
||||
|
||||
/** @var string */
|
||||
private $password;
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function __construct(IUser $user,
|
||||
string $password) {
|
||||
parent::__construct();
|
||||
$this->user = $user;
|
||||
$this->password = $password;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function getUser(): IUser {
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function getUid(): string {
|
||||
return $this->user->getUID();
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 18.0.0
|
||||
*/
|
||||
public function getPassword(): string {
|
||||
return $this->password;
|
||||
}
|
||||
|
||||
}
|
|
@ -13,6 +13,7 @@ use OC\Files\Mount\MountPoint;
|
|||
use OC\Files\Storage\Storage;
|
||||
use OC\Log;
|
||||
use OC\User\Manager;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Files\Config\ICachedMountInfo;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
|
@ -45,7 +46,7 @@ class UserMountCacheTest extends TestCase {
|
|||
protected function setUp(): void {
|
||||
$this->fileIds = [];
|
||||
$this->connection = \OC::$server->getDatabaseConnection();
|
||||
$this->userManager = new Manager($this->createMock(IConfig::class), $this->createMock(EventDispatcherInterface::class));
|
||||
$this->userManager = new Manager($this->createMock(IConfig::class), $this->createMock(EventDispatcherInterface::class), $this->createMock(IEventDispatcher::class));
|
||||
$userBackend = new Dummy();
|
||||
$userBackend->createUser('u1', '');
|
||||
$userBackend->createUser('u2', '');
|
||||
|
|
|
@ -14,6 +14,7 @@ use OC\User\Manager;
|
|||
use OCP\Encryption\IEncryptionModule;
|
||||
use OCP\Encryption\IFile;
|
||||
use OCP\Encryption\Keys\IStorage;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Files\Cache\ICache;
|
||||
use OCP\Files\Mount\IMountPoint;
|
||||
use OCP\IConfig;
|
||||
|
@ -131,7 +132,7 @@ class EncryptionTest extends Storage {
|
|||
|
||||
$this->util = $this->getMockBuilder('\OC\Encryption\Util')
|
||||
->setMethods(['getUidAndFilename', 'isFile', 'isExcluded'])
|
||||
->setConstructorArgs([new View(), new Manager($this->config, $this->createMock(EventDispatcherInterface::class)), $this->groupManager, $this->config, $this->arrayCache])
|
||||
->setConstructorArgs([new View(), new Manager($this->config, $this->createMock(EventDispatcherInterface::class), $this->createMock(IEventDispatcher::class)), $this->groupManager, $this->config, $this->arrayCache])
|
||||
->getMock();
|
||||
$this->util->expects($this->any())
|
||||
->method('getUidAndFilename')
|
||||
|
@ -568,7 +569,7 @@ class EncryptionTest extends Storage {
|
|||
->setConstructorArgs(
|
||||
[
|
||||
new View(),
|
||||
new Manager($this->config, $this->createMock(EventDispatcherInterface::class)),
|
||||
new Manager($this->config, $this->createMock(EventDispatcherInterface::class), $this->createMock(IEventDispatcher::class)),
|
||||
$this->groupManager,
|
||||
$this->config,
|
||||
$this->arrayCache
|
||||
|
@ -637,7 +638,7 @@ class EncryptionTest extends Storage {
|
|||
->willReturn($exists);
|
||||
|
||||
$util = $this->getMockBuilder('\OC\Encryption\Util')
|
||||
->setConstructorArgs([new View(), new Manager($this->config, $this->createMock(EventDispatcherInterface::class)), $this->groupManager, $this->config, $this->arrayCache])
|
||||
->setConstructorArgs([new View(), new Manager($this->config, $this->createMock(EventDispatcherInterface::class), $this->createMock(IEventDispatcher::class)), $this->groupManager, $this->config, $this->arrayCache])
|
||||
->getMock();
|
||||
|
||||
$cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace Test\Files\Stream;
|
|||
use OC\Files\Cache\CacheEntry;
|
||||
use OC\Files\View;
|
||||
use OC\Memcache\ArrayCache;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Files\Cache\ICache;
|
||||
use OCP\IConfig;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
@ -48,7 +49,7 @@ class EncryptionTest extends \Test\TestCase {
|
|||
$file->expects($this->any())->method('getAccessList')->willReturn([]);
|
||||
$util = $this->getMockBuilder('\OC\Encryption\Util')
|
||||
->setMethods(['getUidAndFilename'])
|
||||
->setConstructorArgs([new View(), new \OC\User\Manager($config, $this->createMock(EventDispatcherInterface::class)), $groupManager, $config, $arrayCache])
|
||||
->setConstructorArgs([new View(), new \OC\User\Manager($config, $this->createMock(EventDispatcherInterface::class), $this->createMock(IEventDispatcher::class)), $groupManager, $config, $arrayCache])
|
||||
->getMock();
|
||||
$util->expects($this->any())
|
||||
->method('getUidAndFilename')
|
||||
|
|
|
@ -11,6 +11,7 @@ namespace Test\User;
|
|||
use OC\AllConfig;
|
||||
use OC\User\Database;
|
||||
use OC\User\Manager;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IUser;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
@ -28,18 +29,21 @@ class ManagerTest extends TestCase {
|
|||
/** @var IConfig */
|
||||
private $config;
|
||||
/** @var EventDispatcherInterface */
|
||||
private $dispatcher;
|
||||
private $oldDispatcher;
|
||||
/** @var IEventDispatcher */
|
||||
private $eventDispatcher;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$this->oldDispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
|
||||
}
|
||||
|
||||
public function testGetBackends() {
|
||||
$userDummyBackend = $this->createMock(\Test\Util\User\Dummy::class);
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($userDummyBackend);
|
||||
$this->assertEquals([$userDummyBackend], $manager->getBackends());
|
||||
$dummyDatabaseBackend = $this->createMock(Database::class);
|
||||
|
@ -58,7 +62,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertTrue($manager->userExists('foo'));
|
||||
|
@ -74,14 +78,14 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertFalse($manager->userExists('foo'));
|
||||
}
|
||||
|
||||
public function testUserExistsNoBackends() {
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
|
||||
$this->assertFalse($manager->userExists('foo'));
|
||||
}
|
||||
|
@ -105,7 +109,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend1);
|
||||
$manager->registerBackend($backend2);
|
||||
|
||||
|
@ -129,7 +133,7 @@ class ManagerTest extends TestCase {
|
|||
$backend2->expects($this->never())
|
||||
->method('userExists');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend1);
|
||||
$manager->registerBackend($backend2);
|
||||
|
||||
|
@ -156,7 +160,7 @@ class ManagerTest extends TestCase {
|
|||
}
|
||||
}));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$user = $manager->checkPassword('foo', 'bar');
|
||||
|
@ -175,7 +179,7 @@ class ManagerTest extends TestCase {
|
|||
->method('implementsActions')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertFalse($manager->checkPassword('foo', 'bar'));
|
||||
|
@ -193,7 +197,7 @@ class ManagerTest extends TestCase {
|
|||
$backend->expects($this->never())
|
||||
->method('loginName2UserName');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertEquals('foo', $manager->get('foo')->getUID());
|
||||
|
@ -209,7 +213,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertEquals(null, $manager->get('foo'));
|
||||
|
@ -227,7 +231,7 @@ class ManagerTest extends TestCase {
|
|||
$backend->expects($this->never())
|
||||
->method('loginName2UserName');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertEquals('bLeNdEr', $manager->get('bLeNdEr')->getUID());
|
||||
|
@ -245,7 +249,7 @@ class ManagerTest extends TestCase {
|
|||
$backend->expects($this->never())
|
||||
->method('loginName2UserName');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$result = $manager->search('fo');
|
||||
|
@ -279,7 +283,7 @@ class ManagerTest extends TestCase {
|
|||
$backend2->expects($this->never())
|
||||
->method('loginName2UserName');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend1);
|
||||
$manager->registerBackend($backend2);
|
||||
|
||||
|
@ -333,7 +337,7 @@ class ManagerTest extends TestCase {
|
|||
->willReturn(true);
|
||||
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->expectException(\InvalidArgumentException::class, $exception);
|
||||
|
@ -360,14 +364,14 @@ class ManagerTest extends TestCase {
|
|||
$backend->expects($this->never())
|
||||
->method('loginName2UserName');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$user = $manager->createUser('foo', 'bar');
|
||||
$this->assertEquals('foo', $user->getUID());
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testCreateUserSingleBackendExists() {
|
||||
$this->expectException(\Exception::class);
|
||||
|
||||
|
@ -387,7 +391,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$manager->createUser('foo', 'bar');
|
||||
|
@ -408,19 +412,19 @@ class ManagerTest extends TestCase {
|
|||
$backend->expects($this->never())
|
||||
->method('userExists');
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$this->assertFalse($manager->createUser('foo', 'bar'));
|
||||
}
|
||||
|
||||
public function testCreateUserNoBackends() {
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
|
||||
$this->assertFalse($manager->createUser('foo', 'bar'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testCreateUserFromBackendWithBackendError() {
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('Could not create user');
|
||||
|
@ -435,11 +439,11 @@ class ManagerTest extends TestCase {
|
|||
->with('MyUid', 'MyPassword')
|
||||
->willReturn(false);
|
||||
|
||||
$manager = new Manager($config, $this->dispatcher);
|
||||
$manager = new Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->createUserFromBackend('MyUid', 'MyPassword', $backend);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testCreateUserTwoBackendExists() {
|
||||
$this->expectException(\Exception::class);
|
||||
|
||||
|
@ -475,7 +479,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('foo'))
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend1);
|
||||
$manager->registerBackend($backend2);
|
||||
|
||||
|
@ -483,7 +487,7 @@ class ManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testCountUsersNoBackend() {
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
|
||||
$result = $manager->countUsers();
|
||||
$this->assertTrue(is_array($result));
|
||||
|
@ -508,7 +512,7 @@ class ManagerTest extends TestCase {
|
|||
->method('getBackendName')
|
||||
->will($this->returnValue('Mock_Test_Util_User_Dummy'));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$result = $manager->countUsers();
|
||||
|
@ -549,7 +553,7 @@ class ManagerTest extends TestCase {
|
|||
->method('getBackendName')
|
||||
->will($this->returnValue('Mock_Test_Util_User_Dummy'));
|
||||
|
||||
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend1);
|
||||
$manager->registerBackend($backend2);
|
||||
|
||||
|
@ -650,21 +654,7 @@ class ManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testDeleteUser() {
|
||||
$config = $this->getMockBuilder(IConfig::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$config
|
||||
->expects($this->at(0))
|
||||
->method('getUserValue')
|
||||
->with('foo', 'core', 'enabled')
|
||||
->will($this->returnValue(true));
|
||||
$config
|
||||
->expects($this->at(1))
|
||||
->method('getUserValue')
|
||||
->with('foo', 'login', 'lastLogin')
|
||||
->will($this->returnValue(0));
|
||||
|
||||
$manager = new \OC\User\Manager($config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($this->config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$backend = new \Test\Util\User\Dummy();
|
||||
|
||||
$manager->registerBackend($backend);
|
||||
|
@ -698,7 +688,7 @@ class ManagerTest extends TestCase {
|
|||
->with($this->equalTo('uid2'))
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$manager = new \OC\User\Manager($config, $this->dispatcher);
|
||||
$manager = new \OC\User\Manager($config, $this->oldDispatcher, $this->eventDispatcher);
|
||||
$manager->registerBackend($backend);
|
||||
|
||||
$users = $manager->getByEmail('test@example.com');
|
||||
|
|
|
@ -228,7 +228,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
|
||||
$backend = $this->createMock(\Test\Util\User\Dummy::class);
|
||||
|
@ -271,7 +275,7 @@ class SessionTest extends \Test\TestCase {
|
|||
$this->assertEquals($user, $userSession->getUser());
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testLoginValidPasswordDisabled() {
|
||||
$this->expectException(\OC\User\LoginException::class);
|
||||
|
||||
|
@ -290,11 +294,13 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
|
||||
$backend = $this->createMock(\Test\Util\User\Dummy::class);
|
||||
|
||||
$user = $this->createMock(IUser::class);
|
||||
$user->expects($this->any())
|
||||
->method('isEnabled')
|
||||
|
@ -321,7 +327,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$backend = $this->createMock(\Test\Util\User\Dummy::class);
|
||||
$userSession = new \OC\User\Session($manager, $session, $this->timeFactory, $this->tokenProvider, $this->config, $this->random, $this->lockdownManager, $this->logger, $this->dispatcher);
|
||||
|
@ -404,7 +414,7 @@ class SessionTest extends \Test\TestCase {
|
|||
$userSession->login('foo', 'bar');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testLogClientInNoTokenPasswordWith2fa() {
|
||||
$this->expectException(\OC\Authentication\Exceptions\PasswordLoginForbiddenException::class);
|
||||
|
||||
|
@ -508,7 +518,7 @@ class SessionTest extends \Test\TestCase {
|
|||
$this->assertTrue($userSession->logClientIn('john', 'I-AM-AN-APP-PASSWORD', $request, $this->throttler));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testLogClientInNoTokenPasswordNo2fa() {
|
||||
$this->expectException(\OC\Authentication\Exceptions\PasswordLoginForbiddenException::class);
|
||||
|
||||
|
@ -560,7 +570,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$userSession = $this->getMockBuilder(Session::class)
|
||||
//override, otherwise tests will fail because of setcookie()
|
||||
|
@ -645,7 +659,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$userSession = $this->getMockBuilder(Session::class)
|
||||
//override, otherwise tests will fail because of setcookie()
|
||||
|
@ -705,7 +723,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$userSession = $this->getMockBuilder(Session::class)
|
||||
//override, otherwise tests will fail because of setcookie()
|
||||
|
@ -753,7 +775,11 @@ class SessionTest extends \Test\TestCase {
|
|||
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
|
||||
$manager = $this->getMockBuilder(Manager::class)
|
||||
->setMethods($mockedManagerMethods)
|
||||
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
|
||||
->setConstructorArgs([
|
||||
$this->config,
|
||||
$this->createMock(EventDispatcherInterface::class),
|
||||
$this->createMock(IEventDispatcher::class)
|
||||
])
|
||||
->getMock();
|
||||
$userSession = $this->getMockBuilder(Session::class)
|
||||
//override, otherwise tests will fail because of setcookie()
|
||||
|
@ -973,7 +999,7 @@ class SessionTest extends \Test\TestCase {
|
|||
$this->assertFalse($userSession->createSessionToken($request, $uid, $loginName, $password));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testTryTokenLoginWithDisabledUser() {
|
||||
$this->expectException(\OC\User\LoginException::class);
|
||||
|
||||
|
|
Loading…
Reference in a new issue