diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2023-07-27 18:59:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-27 18:59:42 +0200 |
commit | 6b7221756cac889a5b781e826656ee903a0cddcb (patch) | |
tree | 1d8d2332add80e12a07640ac1414d160218f568b /lib/private | |
parent | 5fb5d85067bfc06a10cd8dbd2a21052a21ec2d81 (diff) | |
parent | 35c313e280a63ef96ec321dec07853a7b90cb415 (diff) | |
download | nextcloud-server-6b7221756cac889a5b781e826656ee903a0cddcb.tar.gz nextcloud-server-6b7221756cac889a5b781e826656ee903a0cddcb.zip |
Merge pull request #39571 from nextcloud/bugfix/noid/move-lib-to-IEventDispatcher
Move lib/ events to IEventDispatcher where possible
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/App/AppManager.php | 10 | ||||
-rw-r--r-- | lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php | 35 | ||||
-rw-r--r-- | lib/private/Authentication/TwoFactorAuth/Manager.php | 15 | ||||
-rw-r--r-- | lib/private/Files/Node/HookConnector.php | 38 | ||||
-rw-r--r-- | lib/private/Preview/Generator.php | 10 | ||||
-rw-r--r-- | lib/private/PreviewManager.php | 5 | ||||
-rw-r--r-- | lib/private/Server.php | 3 | ||||
-rw-r--r-- | lib/private/Share20/LegacyHooks.php | 50 | ||||
-rw-r--r-- | lib/private/Share20/Manager.php | 4 | ||||
-rw-r--r-- | lib/private/SystemTag/ManagerFactory.php | 5 | ||||
-rw-r--r-- | lib/private/SystemTag/SystemTagManager.php | 28 | ||||
-rw-r--r-- | lib/private/SystemTag/SystemTagObjectMapper.php | 27 | ||||
-rw-r--r-- | lib/private/User/User.php | 4 |
13 files changed, 65 insertions, 169 deletions
diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index b881d37440e..88044fbf7b6 100644 --- a/lib/private/App/AppManager.php +++ b/lib/private/App/AppManager.php @@ -59,7 +59,6 @@ use OCP\IUser; use OCP\IUserSession; use OCP\Settings\IManager as ISettingsManager; use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class AppManager implements IAppManager { /** @@ -79,7 +78,6 @@ class AppManager implements IAppManager { private AppConfig $appConfig; private IGroupManager $groupManager; private ICacheFactory $memCacheFactory; - private EventDispatcherInterface $legacyDispatcher; private IEventDispatcher $dispatcher; private LoggerInterface $logger; @@ -110,7 +108,6 @@ class AppManager implements IAppManager { AppConfig $appConfig, IGroupManager $groupManager, ICacheFactory $memCacheFactory, - EventDispatcherInterface $legacyDispatcher, IEventDispatcher $dispatcher, LoggerInterface $logger) { $this->userSession = $userSession; @@ -118,7 +115,6 @@ class AppManager implements IAppManager { $this->appConfig = $appConfig; $this->groupManager = $groupManager; $this->memCacheFactory = $memCacheFactory; - $this->legacyDispatcher = $legacyDispatcher; $this->dispatcher = $dispatcher; $this->logger = $logger; } @@ -543,7 +539,7 @@ class AppManager implements IAppManager { $this->installedAppsCache[$appId] = 'yes'; $this->appConfig->setValue($appId, 'enabled', 'yes'); $this->dispatcher->dispatchTyped(new AppEnableEvent($appId)); - $this->legacyDispatcher->dispatch(ManagerEvent::EVENT_APP_ENABLE, new ManagerEvent( + $this->dispatcher->dispatch(ManagerEvent::EVENT_APP_ENABLE, new ManagerEvent( ManagerEvent::EVENT_APP_ENABLE, $appId )); $this->clearAppsCache(); @@ -597,7 +593,7 @@ class AppManager implements IAppManager { $this->installedAppsCache[$appId] = json_encode($groupIds); $this->appConfig->setValue($appId, 'enabled', json_encode($groupIds)); $this->dispatcher->dispatchTyped(new AppEnableEvent($appId, $groupIds)); - $this->legacyDispatcher->dispatch(ManagerEvent::EVENT_APP_ENABLE_FOR_GROUPS, new ManagerEvent( + $this->dispatcher->dispatch(ManagerEvent::EVENT_APP_ENABLE_FOR_GROUPS, new ManagerEvent( ManagerEvent::EVENT_APP_ENABLE_FOR_GROUPS, $appId, $groups )); $this->clearAppsCache(); @@ -633,7 +629,7 @@ class AppManager implements IAppManager { } $this->dispatcher->dispatchTyped(new AppDisableEvent($appId)); - $this->legacyDispatcher->dispatch(ManagerEvent::EVENT_APP_DISABLE, new ManagerEvent( + $this->dispatcher->dispatch(ManagerEvent::EVENT_APP_DISABLE, new ManagerEvent( ManagerEvent::EVENT_APP_DISABLE, $appId )); $this->clearAppsCache(); diff --git a/lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php b/lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php index ec52dde0ecd..f3f9b07f2a8 100644 --- a/lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php +++ b/lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php @@ -32,44 +32,19 @@ use OCP\AppFramework\Http\Response; use OCP\AppFramework\Http\StandaloneTemplateResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Middleware; -use OCP\AppFramework\PublicShareController; -use OCP\EventDispatcher\GenericEvent; use OCP\EventDispatcher\IEventDispatcher; use OCP\IUserSession; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class AdditionalScriptsMiddleware extends Middleware { - /** @var EventDispatcherInterface */ - private $legacyDispatcher; - /** @var IUserSession */ - private $userSession; - /** @var IEventDispatcher */ - private $dispatcher; - - public function __construct(EventDispatcherInterface $legacyDispatcher, IUserSession $userSession, IEventDispatcher $dispatcher) { - $this->legacyDispatcher = $legacyDispatcher; - $this->userSession = $userSession; - $this->dispatcher = $dispatcher; + public function __construct( + private IUserSession $userSession, + private IEventDispatcher $dispatcher, + ) { } public function afterController($controller, $methodName, Response $response): Response { if ($response instanceof TemplateResponse) { - if (!$controller instanceof PublicShareController) { - /* - * The old event was not dispatched on the public share controller as there was - * OCA\Files_Sharing::loadAdditionalScripts for that. This is kept for compatibility reasons - * only for the old event as this is now also included in BeforeTemplateRenderedEvent - */ - $this->legacyDispatcher->dispatch(TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS, new GenericEvent()); - } - - if (!($response instanceof StandaloneTemplateResponse) && $this->userSession->isLoggedIn()) { - $this->legacyDispatcher->dispatch(TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN, new GenericEvent()); - $isLoggedIn = true; - } else { - $isLoggedIn = false; - } - + $isLoggedIn = !($response instanceof StandaloneTemplateResponse) && $this->userSession->isLoggedIn(); $this->dispatcher->dispatchTyped(new BeforeTemplateRenderedEvent($isLoggedIn, $response)); } diff --git a/lib/private/Authentication/TwoFactorAuth/Manager.php b/lib/private/Authentication/TwoFactorAuth/Manager.php index 17937de4e44..8ae08ca65ae 100644 --- a/lib/private/Authentication/TwoFactorAuth/Manager.php +++ b/lib/private/Authentication/TwoFactorAuth/Manager.php @@ -46,8 +46,6 @@ use OCP\ISession; use OCP\IUser; use OCP\Session\Exceptions\SessionNotAvailableException; use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\GenericEvent; use function array_diff; use function array_filter; @@ -87,9 +85,6 @@ class Manager { /** @var IEventDispatcher */ private $dispatcher; - /** @var EventDispatcherInterface */ - private $legacyDispatcher; - /** @psalm-var array<string, bool> */ private $userIsTwoFactorAuthenticated = []; @@ -102,8 +97,7 @@ class Manager { LoggerInterface $logger, TokenProvider $tokenProvider, ITimeFactory $timeFactory, - IEventDispatcher $eventDispatcher, - EventDispatcherInterface $legacyDispatcher) { + IEventDispatcher $eventDispatcher) { $this->providerLoader = $providerLoader; $this->providerRegistry = $providerRegistry; $this->mandatoryTwoFactor = $mandatoryTwoFactor; @@ -114,7 +108,6 @@ class Manager { $this->tokenProvider = $tokenProvider; $this->timeFactory = $timeFactory; $this->dispatcher = $eventDispatcher; - $this->legacyDispatcher = $legacyDispatcher; } /** @@ -284,9 +277,6 @@ class Manager { $tokenId = $token->getId(); $this->config->deleteUserValue($user->getUID(), 'login_token_2fa', (string)$tokenId); - $dispatchEvent = new GenericEvent($user, ['provider' => $provider->getDisplayName()]); - $this->legacyDispatcher->dispatch(IProvider::EVENT_SUCCESS, $dispatchEvent); - $this->dispatcher->dispatchTyped(new TwoFactorProviderForUserEnabled($user, $provider)); $this->dispatcher->dispatchTyped(new TwoFactorProviderChallengePassed($user, $provider)); @@ -294,9 +284,6 @@ class Manager { 'provider' => $provider->getDisplayName(), ]); } else { - $dispatchEvent = new GenericEvent($user, ['provider' => $provider->getDisplayName()]); - $this->legacyDispatcher->dispatch(IProvider::EVENT_FAILED, $dispatchEvent); - $this->dispatcher->dispatchTyped(new TwoFactorProviderForUserDisabled($user, $provider)); $this->dispatcher->dispatchTyped(new TwoFactorProviderChallengeFailed($user, $provider)); diff --git a/lib/private/Files/Node/HookConnector.php b/lib/private/Files/Node/HookConnector.php index c61e098c227..a8e76d95c22 100644 --- a/lib/private/Files/Node/HookConnector.php +++ b/lib/private/Files/Node/HookConnector.php @@ -46,7 +46,6 @@ use OCP\Files\Events\Node\NodeWrittenEvent; use OCP\Files\FileInfo; use OCP\Files\IRootFolder; use OCP\Util; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class HookConnector { /** @var IRootFolder */ @@ -58,26 +57,15 @@ class HookConnector { /** @var FileInfo[] */ private $deleteMetaCache = []; - /** @var EventDispatcherInterface */ - private $legacyDispatcher; - /** @var IEventDispatcher */ private $dispatcher; - /** - * HookConnector constructor. - * - * @param Root $root - * @param View $view - */ public function __construct( IRootFolder $root, View $view, - EventDispatcherInterface $legacyDispatcher, IEventDispatcher $dispatcher) { $this->root = $root; $this->view = $view; - $this->legacyDispatcher = $legacyDispatcher; $this->dispatcher = $dispatcher; } @@ -106,7 +94,7 @@ class HookConnector { public function write($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'preWrite', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::preWrite', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::preWrite', new GenericEvent($node)); $event = new BeforeNodeWrittenEvent($node); $this->dispatcher->dispatchTyped($event); @@ -115,7 +103,7 @@ class HookConnector { public function postWrite($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'postWrite', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::postWrite', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::postWrite', new GenericEvent($node)); $event = new NodeWrittenEvent($node); $this->dispatcher->dispatchTyped($event); @@ -124,7 +112,7 @@ class HookConnector { public function create($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'preCreate', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::preCreate', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::preCreate', new GenericEvent($node)); $event = new BeforeNodeCreatedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -133,7 +121,7 @@ class HookConnector { public function postCreate($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'postCreate', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::postCreate', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::postCreate', new GenericEvent($node)); $event = new NodeCreatedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -143,7 +131,7 @@ class HookConnector { $node = $this->getNodeForPath($arguments['path']); $this->deleteMetaCache[$node->getPath()] = $node->getFileInfo(); $this->root->emit('\OC\Files', 'preDelete', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::preDelete', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::preDelete', new GenericEvent($node)); $event = new BeforeNodeDeletedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -153,7 +141,7 @@ class HookConnector { $node = $this->getNodeForPath($arguments['path']); unset($this->deleteMetaCache[$node->getPath()]); $this->root->emit('\OC\Files', 'postDelete', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::postDelete', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::postDelete', new GenericEvent($node)); $event = new NodeDeletedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -162,7 +150,7 @@ class HookConnector { public function touch($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'preTouch', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::preTouch', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::preTouch', new GenericEvent($node)); $event = new BeforeNodeTouchedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -171,7 +159,7 @@ class HookConnector { public function postTouch($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'postTouch', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::postTouch', new GenericEvent($node)); + $this->dispatcher->dispatch('\OCP\Files::postTouch', new GenericEvent($node)); $event = new NodeTouchedEvent($node); $this->dispatcher->dispatchTyped($event); @@ -181,7 +169,7 @@ class HookConnector { $source = $this->getNodeForPath($arguments['oldpath']); $target = $this->getNodeForPath($arguments['newpath']); $this->root->emit('\OC\Files', 'preRename', [$source, $target]); - $this->legacyDispatcher->dispatch('\OCP\Files::preRename', new GenericEvent([$source, $target])); + $this->dispatcher->dispatch('\OCP\Files::preRename', new GenericEvent([$source, $target])); $event = new BeforeNodeRenamedEvent($source, $target); $this->dispatcher->dispatchTyped($event); @@ -191,7 +179,7 @@ class HookConnector { $source = $this->getNodeForPath($arguments['oldpath']); $target = $this->getNodeForPath($arguments['newpath']); $this->root->emit('\OC\Files', 'postRename', [$source, $target]); - $this->legacyDispatcher->dispatch('\OCP\Files::postRename', new GenericEvent([$source, $target])); + $this->dispatcher->dispatch('\OCP\Files::postRename', new GenericEvent([$source, $target])); $event = new NodeRenamedEvent($source, $target); $this->dispatcher->dispatchTyped($event); @@ -201,7 +189,7 @@ class HookConnector { $source = $this->getNodeForPath($arguments['oldpath']); $target = $this->getNodeForPath($arguments['newpath']); $this->root->emit('\OC\Files', 'preCopy', [$source, $target]); - $this->legacyDispatcher->dispatch('\OCP\Files::preCopy', new GenericEvent([$source, $target])); + $this->dispatcher->dispatch('\OCP\Files::preCopy', new GenericEvent([$source, $target])); $event = new BeforeNodeCopiedEvent($source, $target); $this->dispatcher->dispatchTyped($event); @@ -211,7 +199,7 @@ class HookConnector { $source = $this->getNodeForPath($arguments['oldpath']); $target = $this->getNodeForPath($arguments['newpath']); $this->root->emit('\OC\Files', 'postCopy', [$source, $target]); - $this->legacyDispatcher->dispatch('\OCP\Files::postCopy', new GenericEvent([$source, $target])); + $this->dispatcher->dispatch('\OCP\Files::postCopy', new GenericEvent([$source, $target])); $event = new NodeCopiedEvent($source, $target); $this->dispatcher->dispatchTyped($event); @@ -220,7 +208,7 @@ class HookConnector { public function read($arguments) { $node = $this->getNodeForPath($arguments['path']); $this->root->emit('\OC\Files', 'read', [$node]); - $this->legacyDispatcher->dispatch('\OCP\Files::read', new GenericEvent([$node])); + $this->dispatcher->dispatch('\OCP\Files::read', new GenericEvent([$node])); $event = new BeforeNodeReadEvent($node); $this->dispatcher->dispatchTyped($event); diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index c9949c82a97..4e4571f0857 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -44,8 +44,6 @@ use OCP\IStreamImage; use OCP\Preview\BeforePreviewFetchedEvent; use OCP\Preview\IProviderV2; use OCP\Preview\IVersionedPreviewFile; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\GenericEvent; class Generator { public const SEMAPHORE_ID_ALL = 0x0a11; @@ -59,8 +57,6 @@ class Generator { private $appData; /** @var GeneratorHelper */ private $helper; - /** @var EventDispatcherInterface */ - private $legacyEventDispatcher; /** @var IEventDispatcher */ private $eventDispatcher; @@ -69,14 +65,12 @@ class Generator { IPreview $previewManager, IAppData $appData, GeneratorHelper $helper, - EventDispatcherInterface $legacyEventDispatcher, IEventDispatcher $eventDispatcher ) { $this->config = $config; $this->previewManager = $previewManager; $this->appData = $appData; $this->helper = $helper; - $this->legacyEventDispatcher = $legacyEventDispatcher; $this->eventDispatcher = $eventDispatcher; } @@ -104,10 +98,6 @@ class Generator { 'mode' => $mode, ]; - $this->legacyEventDispatcher->dispatch( - IPreview::EVENT, - new GenericEvent($file, $specification) - ); $this->eventDispatcher->dispatchTyped(new BeforePreviewFetchedEvent( $file, $width, diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 814235f4212..3af6848686e 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -46,7 +46,6 @@ use OCP\IConfig; use OCP\IPreview; use OCP\IServerContainer; use OCP\Preview\IProviderV2; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; use function array_key_exists; class PreviewManager implements IPreview { @@ -54,7 +53,6 @@ class PreviewManager implements IPreview { protected IRootFolder $rootFolder; protected IAppData $appData; protected IEventDispatcher $eventDispatcher; - protected EventDispatcherInterface $legacyEventDispatcher; private ?Generator $generator = null; private GeneratorHelper $helper; protected bool $providerListDirty = false; @@ -81,7 +79,6 @@ class PreviewManager implements IPreview { IRootFolder $rootFolder, IAppData $appData, IEventDispatcher $eventDispatcher, - EventDispatcherInterface $legacyEventDispatcher, GeneratorHelper $helper, ?string $userId, Coordinator $bootstrapCoordinator, @@ -93,7 +90,6 @@ class PreviewManager implements IPreview { $this->rootFolder = $rootFolder; $this->appData = $appData; $this->eventDispatcher = $eventDispatcher; - $this->legacyEventDispatcher = $legacyEventDispatcher; $this->helper = $helper; $this->userId = $userId; $this->bootstrapCoordinator = $bootstrapCoordinator; @@ -161,7 +157,6 @@ class PreviewManager implements IPreview { $this->rootFolder, $this->config ), - $this->legacyEventDispatcher, $this->eventDispatcher ); } diff --git a/lib/private/Server.php b/lib/private/Server.php index 03c03e1b6ed..86f5192a39d 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -340,7 +340,6 @@ class Server extends ServerContainer implements IServerContainer { $c->get(SystemConfig::class) ), $c->get(IEventDispatcher::class), - $c->get(SymfonyAdapter::class), $c->get(GeneratorHelper::class), $c->get(ISession::class)->get('user_id'), $c->get(Coordinator::class), @@ -466,7 +465,6 @@ class Server extends ServerContainer implements IServerContainer { return new HookConnector( $c->get(IRootFolder::class), new View(), - $c->get(\OC\EventDispatcher\SymfonyAdapter::class), $c->get(IEventDispatcher::class) ); }); @@ -940,7 +938,6 @@ class Server extends ServerContainer implements IServerContainer { $c->get(\OC\AppConfig::class), $c->get(IGroupManager::class), $c->get(ICacheFactory::class), - $c->get(SymfonyAdapter::class), $c->get(IEventDispatcher::class), $c->get(LoggerInterface::class) ); diff --git a/lib/private/Share20/LegacyHooks.php b/lib/private/Share20/LegacyHooks.php index feb4604e884..688b2273384 100644 --- a/lib/private/Share20/LegacyHooks.php +++ b/lib/private/Share20/LegacyHooks.php @@ -26,34 +26,46 @@ */ namespace OC\Share20; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\File; use OCP\Share; use OCP\Share\IShare; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\GenericEvent; class LegacyHooks { - /** @var EventDispatcherInterface */ + /** @var IEventDispatcher */ private $eventDispatcher; - /** - * LegacyHooks constructor. - * - * @param EventDispatcherInterface $eventDispatcher - */ - public function __construct(EventDispatcherInterface $eventDispatcher) { + public function __construct(IEventDispatcher $eventDispatcher) { $this->eventDispatcher = $eventDispatcher; - $this->eventDispatcher->addListener('OCP\Share::preUnshare', [$this, 'preUnshare']); - $this->eventDispatcher->addListener('OCP\Share::postUnshare', [$this, 'postUnshare']); - $this->eventDispatcher->addListener('OCP\Share::postUnshareFromSelf', [$this, 'postUnshareFromSelf']); - $this->eventDispatcher->addListener('OCP\Share::preShare', [$this, 'preShare']); - $this->eventDispatcher->addListener('OCP\Share::postShare', [$this, 'postShare']); + $this->eventDispatcher->addListener('OCP\Share::preUnshare', function ($event) { + if ($event instanceof GenericEvent) { + $this->preUnshare($event); + } + }); + $this->eventDispatcher->addListener('OCP\Share::postUnshare', function ($event) { + if ($event instanceof GenericEvent) { + $this->postUnshare($event); + } + }); + $this->eventDispatcher->addListener('OCP\Share::postUnshareFromSelf', function ($event) { + if ($event instanceof GenericEvent) { + $this->postUnshareFromSelf($event); + } + }); + $this->eventDispatcher->addListener('OCP\Share::preShare', function ($event) { + if ($event instanceof GenericEvent) { + $this->preShare($event); + } + }); + $this->eventDispatcher->addListener('OCP\Share::postShare', function ($event) { + if ($event instanceof GenericEvent) { + $this->postShare($event); + } + }); } - /** - * @param GenericEvent $e - */ public function preUnshare(GenericEvent $e) { /** @var IShare $share */ $share = $e->getSubject(); @@ -62,9 +74,6 @@ class LegacyHooks { \OC_Hook::emit(Share::class, 'pre_unshare', $formatted); } - /** - * @param GenericEvent $e - */ public function postUnshare(GenericEvent $e) { /** @var IShare $share */ $share = $e->getSubject(); @@ -83,9 +92,6 @@ class LegacyHooks { \OC_Hook::emit(Share::class, 'post_unshare', $formatted); } - /** - * @param GenericEvent $e - */ public function postUnshareFromSelf(GenericEvent $e) { /** @var IShare $share */ $share = $e->getSubject(); diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 732bd5bb97d..3f5dbd7cd28 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -157,7 +157,7 @@ class Manager implements IManager { $this->sharingDisabledForUsersCache = new CappedMemoryCache(); // The constructor of LegacyHooks registers the listeners of share events // do not remove if those are not properly migrated - $this->legacyHooks = new LegacyHooks($this->legacyDispatcher); + $this->legacyHooks = new LegacyHooks($dispatcher); $this->mailer = $mailer; $this->urlGenerator = $urlGenerator; $this->defaults = $defaults; @@ -194,7 +194,7 @@ class Manager implements IManager { // Let others verify the password try { - $this->legacyDispatcher->dispatch(new ValidatePasswordPolicyEvent($password)); + $this->dispatcher->dispatchTyped(new ValidatePasswordPolicyEvent($password)); } catch (HintException $e) { throw new \Exception($e->getHint()); } diff --git a/lib/private/SystemTag/ManagerFactory.php b/lib/private/SystemTag/ManagerFactory.php index ca0508fe19b..6670922407e 100644 --- a/lib/private/SystemTag/ManagerFactory.php +++ b/lib/private/SystemTag/ManagerFactory.php @@ -26,6 +26,7 @@ declare(strict_types=1); */ namespace OC\SystemTag; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IServerContainer; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ISystemTagManagerFactory; @@ -64,7 +65,7 @@ class ManagerFactory implements ISystemTagManagerFactory { return new SystemTagManager( $this->serverContainer->getDatabaseConnection(), $this->serverContainer->getGroupManager(), - $this->serverContainer->getEventDispatcher() + $this->serverContainer->get(IEventDispatcher::class), ); } @@ -79,7 +80,7 @@ class ManagerFactory implements ISystemTagManagerFactory { return new SystemTagObjectMapper( $this->serverContainer->getDatabaseConnection(), $this->getManager(), - $this->serverContainer->getEventDispatcher() + $this->serverContainer->get(IEventDispatcher::class), ); } } diff --git a/lib/private/SystemTag/SystemTagManager.php b/lib/private/SystemTag/SystemTagManager.php index 1d5bc10fc2c..c52c350b6f8 100644 --- a/lib/private/SystemTag/SystemTagManager.php +++ b/lib/private/SystemTag/SystemTagManager.php @@ -31,6 +31,7 @@ namespace OC\SystemTag; use Doctrine\DBAL\Exception\UniqueConstraintViolationException; use OCP\DB\QueryBuilder\IQueryBuilder; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IDBConnection; use OCP\IGroupManager; use OCP\IUser; @@ -39,7 +40,6 @@ use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ManagerEvent; use OCP\SystemTag\TagAlreadyExistsException; use OCP\SystemTag\TagNotFoundException; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** * Manager class for system tags @@ -48,15 +48,6 @@ class SystemTagManager implements ISystemTagManager { public const TAG_TABLE = 'systemtag'; public const TAG_GROUP_TABLE = 'systemtag_group'; - /** @var IDBConnection */ - protected $connection; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var IGroupManager */ - protected $groupManager; - /** * Prepared query for selecting tags directly * @@ -64,22 +55,11 @@ class SystemTagManager implements ISystemTagManager { */ private $selectTagQuery; - /** - * Constructor. - * - * @param IDBConnection $connection database connection - * @param IGroupManager $groupManager - * @param EventDispatcherInterface $dispatcher - */ public function __construct( - IDBConnection $connection, - IGroupManager $groupManager, - EventDispatcherInterface $dispatcher + protected IDBConnection $connection, + protected IGroupManager $groupManager, + protected IEventDispatcher $dispatcher, ) { - $this->connection = $connection; - $this->groupManager = $groupManager; - $this->dispatcher = $dispatcher; - $query = $this->connection->getQueryBuilder(); $this->selectTagQuery = $query->select('*') ->from(self::TAG_TABLE) diff --git a/lib/private/SystemTag/SystemTagObjectMapper.php b/lib/private/SystemTag/SystemTagObjectMapper.php index 864ba3e91a8..66a21e58609 100644 --- a/lib/private/SystemTag/SystemTagObjectMapper.php +++ b/lib/private/SystemTag/SystemTagObjectMapper.php @@ -29,37 +29,22 @@ namespace OC\SystemTag; use Doctrine\DBAL\Exception\UniqueConstraintViolationException; use OCP\DB\QueryBuilder\IQueryBuilder; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IDBConnection; use OCP\SystemTag\ISystemTag; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ISystemTagObjectMapper; use OCP\SystemTag\MapperEvent; use OCP\SystemTag\TagNotFoundException; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class SystemTagObjectMapper implements ISystemTagObjectMapper { public const RELATION_TABLE = 'systemtag_object_mapping'; - /** @var ISystemTagManager */ - protected $tagManager; - - /** @var IDBConnection */ - protected $connection; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** - * Constructor. - * - * @param IDBConnection $connection database connection - * @param ISystemTagManager $tagManager system tag manager - * @param EventDispatcherInterface $dispatcher - */ - public function __construct(IDBConnection $connection, ISystemTagManager $tagManager, EventDispatcherInterface $dispatcher) { - $this->connection = $connection; - $this->tagManager = $tagManager; - $this->dispatcher = $dispatcher; + public function __construct( + protected IDBConnection $connection, + protected ISystemTagManager $tagManager, + protected IEventDispatcher $dispatcher, + ) { } /** diff --git a/lib/private/User/User.php b/lib/private/User/User.php index dc4cdec1235..2530173bea4 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -271,8 +271,6 @@ class User implements IUser { * @return bool */ public function delete() { - /** @deprecated 21.0.0 use BeforeUserDeletedEvent event with the IEventDispatcher instead */ - $this->legacyDispatcher->dispatch(IUser::class . '::preDelete', new GenericEvent($this)); if ($this->emitter) { /** @deprecated 21.0.0 use BeforeUserDeletedEvent event with the IEventDispatcher instead */ $this->emitter->emit('\OC\User', 'preDelete', [$this]); @@ -310,8 +308,6 @@ class User implements IUser { $accountManager = \OCP\Server::get(AccountManager::class); $accountManager->deleteUser($this); - /** @deprecated 21.0.0 use UserDeletedEvent event with the IEventDispatcher instead */ - $this->legacyDispatcher->dispatch(IUser::class . '::postDelete', new GenericEvent($this)); if ($this->emitter) { /** @deprecated 21.0.0 use UserDeletedEvent event with the IEventDispatcher instead */ $this->emitter->emit('\OC\User', 'postDelete', [$this]); |