mirror of
https://github.com/netzbegruenung/user_saml.git
synced 2024-04-28 07:14:52 +02:00
Merge pull request #582 from nextcloud/event_dispatcher
change displayName with IEventDispatcher + fixed tests
This commit is contained in:
commit
18fa8a11f2
|
@ -56,7 +56,8 @@ $userBackend = new \OCA\User_SAML\UserBackend(
|
|||
\OC::$server->getGroupManager(),
|
||||
$samlSettings,
|
||||
\OC::$server->getLogger(),
|
||||
$userData
|
||||
$userData,
|
||||
\OC::$server->query(\OCP\EventDispatcher\IEventDispatcher::class),
|
||||
);
|
||||
$userBackend->registerBackends(\OC::$server->getUserManager()->getBackends());
|
||||
OC_User::useBackend($userBackend);
|
||||
|
|
|
@ -35,6 +35,8 @@ use OCP\IConfig;
|
|||
use OCP\IURLGenerator;
|
||||
use OCP\ISession;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\User\Events\UserChangedEvent;
|
||||
|
||||
class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
|
||||
/** @var IConfig */
|
||||
|
@ -57,6 +59,8 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
|
|||
private $logger;
|
||||
/** @var UserData */
|
||||
private $userData;
|
||||
/** @var IEventDispatcher */
|
||||
private $eventDispatcher;
|
||||
|
||||
public function __construct(
|
||||
IConfig $config,
|
||||
|
@ -67,7 +71,8 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
|
|||
IGroupManager $groupManager,
|
||||
SAMLSettings $settings,
|
||||
ILogger $logger,
|
||||
UserData $userData
|
||||
UserData $userData,
|
||||
IEventDispatcher $eventDispatcher
|
||||
) {
|
||||
$this->config = $config;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
|
@ -78,6 +83,7 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
|
|||
$this->settings = $settings;
|
||||
$this->logger = $logger;
|
||||
$this->userData = $userData;
|
||||
$this->eventDispatcher = $eventDispatcher;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -645,13 +651,7 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend {
|
|||
$currentDisplayname = (string)$this->getDisplayName($uid);
|
||||
if ($newDisplayname !== null
|
||||
&& $currentDisplayname !== $newDisplayname) {
|
||||
\OC_Hook::emit('OC_User', 'changeUser',
|
||||
[
|
||||
'user' => $user,
|
||||
'feature' => 'displayName',
|
||||
'value' => $newDisplayname
|
||||
]
|
||||
);
|
||||
$this->eventDispatcher->dispatchTyped(new UserChangedEvent($user, 'displayName', $newDisplayname, $currentDisplayname));
|
||||
$this->setDisplayName($uid, $newDisplayname);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ namespace OCA\User_SAML\Tests\Settings;
|
|||
use OCA\User_SAML\SAMLSettings;
|
||||
use OCA\User_SAML\UserBackend;
|
||||
use OCA\User_SAML\UserData;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IGroup;
|
||||
|
@ -33,29 +34,33 @@ use OCP\ISession;
|
|||
use OCP\IURLGenerator;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\User\Events\UserChangedEvent;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
class UserBackendTest extends TestCase {
|
||||
/** @var UserData|\PHPUnit\Framework\MockObject\MockObject */
|
||||
/** @var UserData|MockObject */
|
||||
private $userData;
|
||||
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var IConfig|MockObject */
|
||||
private $config;
|
||||
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var IURLGenerator|MockObject */
|
||||
private $urlGenerator;
|
||||
/** @var ISession|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var ISession|MockObject */
|
||||
private $session;
|
||||
/** @var IDBConnection|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var IDBConnection|MockObject */
|
||||
private $db;
|
||||
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var IUserManager|MockObject */
|
||||
private $userManager;
|
||||
/** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var IGroupManager|MockObject */
|
||||
private $groupManager;
|
||||
/** @var UserBackend|\PHPUnit_Framework_MockObject_MockObject */
|
||||
/** @var UserBackend|MockObject */
|
||||
private $userBackend;
|
||||
/** @var \PHPUnit_Framework_MockObject_MockObject|SAMLSettings */
|
||||
/** @var SAMLSettings|MockObject */
|
||||
private $SAMLSettings;
|
||||
/** @var \PHPUnit_Framework_MockObject_MockObject|ILogger */
|
||||
/** @var ILogger|MockObject */
|
||||
private $logger;
|
||||
/** @var IEventDispatcher|MockObject */
|
||||
private $eventDispatcher;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
@ -69,6 +74,7 @@ class UserBackendTest extends TestCase {
|
|||
$this->SAMLSettings = $this->getMockBuilder(SAMLSettings::class)->disableOriginalConstructor()->getMock();
|
||||
$this->logger = $this->createMock(ILogger::class);
|
||||
$this->userData = $this->createMock(UserData::class);
|
||||
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
|
||||
}
|
||||
|
||||
public function getMockedBuilder(array $mockedFunctions = []) {
|
||||
|
@ -84,6 +90,7 @@ class UserBackendTest extends TestCase {
|
|||
$this->SAMLSettings,
|
||||
$this->logger,
|
||||
$this->userData,
|
||||
$this->eventDispatcher
|
||||
])
|
||||
->setMethods($mockedFunctions)
|
||||
->getMock();
|
||||
|
@ -97,7 +104,8 @@ class UserBackendTest extends TestCase {
|
|||
$this->groupManager,
|
||||
$this->SAMLSettings,
|
||||
$this->logger,
|
||||
$this->userData
|
||||
$this->userData,
|
||||
$this->eventDispatcher
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +117,7 @@ class UserBackendTest extends TestCase {
|
|||
|
||||
public function testUpdateAttributesWithoutAttributes() {
|
||||
$this->getMockedBuilder(['getDisplayName']);
|
||||
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
|
||||
/** @var IUser|MockObject $user */
|
||||
$user = $this->createMock(IUser::class);
|
||||
|
||||
$this->userManager
|
||||
|
@ -151,7 +159,7 @@ class UserBackendTest extends TestCase {
|
|||
|
||||
public function testUpdateAttributes() {
|
||||
$this->getMockedBuilder(['getDisplayName', 'setDisplayName']);
|
||||
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
|
||||
/** @var IUser|MockObject $user */
|
||||
$user = $this->createMock(IUser::class);
|
||||
$groupA = $this->createMock(IGroup::class);
|
||||
$groupC = $this->createMock(IGroup::class);
|
||||
|
@ -242,6 +250,9 @@ class UserBackendTest extends TestCase {
|
|||
->expects($this->once())
|
||||
->method('addUser')
|
||||
->with($user);
|
||||
$this->eventDispatcher->expects($this->once())
|
||||
->method('dispatchTyped')
|
||||
->with(new UserChangedEvent($user, 'displayName', 'New Displayname', ''));
|
||||
|
||||
$this->userBackend->updateAttributes('ExistingUser', [
|
||||
'email' => 'new@example.com',
|
||||
|
@ -253,7 +264,7 @@ class UserBackendTest extends TestCase {
|
|||
|
||||
public function testUpdateAttributesQuotaDefaultFallback() {
|
||||
$this->getMockedBuilder(['getDisplayName', 'setDisplayName']);
|
||||
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
|
||||
/** @var IUser|MockObject $user */
|
||||
$user = $this->createMock(IUser::class);
|
||||
|
||||
$this->config
|
||||
|
@ -305,6 +316,9 @@ class UserBackendTest extends TestCase {
|
|||
->expects($this->once())
|
||||
->method('setDisplayName')
|
||||
->with('ExistingUser', 'New Displayname');
|
||||
$this->eventDispatcher->expects($this->once())
|
||||
->method('dispatchTyped')
|
||||
->with(new UserChangedEvent($user, 'displayName', 'New Displayname', ''));
|
||||
$this->userBackend->updateAttributes('ExistingUser', ['email' => 'new@example.com', 'displayname' => 'New Displayname', 'quota' => '']);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue