mirror of
https://github.com/nextcloud/server.git
synced 2026-02-18 18:28:50 -05:00
fix: Migrate collaboration listener and remove legacy adapter
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
ead47610c1
commit
0c5d0c2127
2 changed files with 17 additions and 36 deletions
|
|
@ -67,7 +67,6 @@ declare(strict_types=1);
|
|||
*/
|
||||
|
||||
use OC\Encryption\HookManager;
|
||||
use OC\EventDispatcher\SymfonyAdapter;
|
||||
use OC\Share20\Hooks;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Group\Events\UserRemovedEvent;
|
||||
|
|
@ -939,7 +938,7 @@ class OC {
|
|||
}
|
||||
|
||||
private static function registerResourceCollectionHooks(): void {
|
||||
\OC\Collaboration\Resources\Listener::register(Server::get(SymfonyAdapter::class), Server::get(IEventDispatcher::class));
|
||||
\OC\Collaboration\Resources\Listener::register(Server::get(IEventDispatcher::class));
|
||||
}
|
||||
|
||||
private static function registerFileReferenceEventListener(): void {
|
||||
|
|
|
|||
|
|
@ -26,27 +26,29 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OC\Collaboration\Resources;
|
||||
|
||||
use OC\EventDispatcher\SymfonyAdapter;
|
||||
use OCP\Collaboration\Resources\IManager;
|
||||
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\IGroup;
|
||||
use OCP\IUser;
|
||||
use OCP\Group\Events\BeforeGroupDeletedEvent;
|
||||
use OCP\Group\Events\UserAddedEvent;
|
||||
use OCP\Group\Events\UserRemovedEvent;
|
||||
use OCP\User\Events\UserDeletedEvent;
|
||||
use Symfony\Component\EventDispatcher\GenericEvent;
|
||||
|
||||
class Listener {
|
||||
public static function register(SymfonyAdapter $symfonyDispatcher, IEventDispatcher $eventDispatcher): void {
|
||||
$listener = function (GenericEvent $event) {
|
||||
/** @var IUser $user */
|
||||
$user = $event->getArgument('user');
|
||||
public static function register(IEventDispatcher $eventDispatcher): void {
|
||||
$eventDispatcher->addListener(UserAddedEvent::class, function (UserAddedEvent $event) {
|
||||
$user = $event->getUser();
|
||||
/** @var IManager $resourceManager */
|
||||
$resourceManager = \OCP\Server::get(IManager::class);
|
||||
|
||||
$resourceManager->invalidateAccessCacheForUser($user);
|
||||
};
|
||||
$symfonyDispatcher->addListener(IGroup::class . '::postAddUser', $listener);
|
||||
$symfonyDispatcher->addListener(IGroup::class . '::postRemoveUser', $listener);
|
||||
});
|
||||
$eventDispatcher->addListener(UserRemovedEvent::class, function (UserRemovedEvent $event) {
|
||||
$user = $event->getUser();
|
||||
/** @var IManager $resourceManager */
|
||||
$resourceManager = \OCP\Server::get(IManager::class);
|
||||
|
||||
$resourceManager->invalidateAccessCacheForUser($user);
|
||||
});
|
||||
|
||||
$eventDispatcher->addListener(UserDeletedEvent::class, function (UserDeletedEvent $event) {
|
||||
$user = $event->getUser();
|
||||
|
|
@ -56,9 +58,8 @@ class Listener {
|
|||
$resourceManager->invalidateAccessCacheForUser($user);
|
||||
});
|
||||
|
||||
$symfonyDispatcher->addListener(IGroup::class . '::preDelete', function (GenericEvent $event) {
|
||||
/** @var IGroup $group */
|
||||
$group = $event->getSubject();
|
||||
$eventDispatcher->addListener(BeforeGroupDeletedEvent::class, function (BeforeGroupDeletedEvent $event) {
|
||||
$group = $event->getGroup();
|
||||
/** @var IManager $resourceManager */
|
||||
$resourceManager = \OCP\Server::get(IManager::class);
|
||||
|
||||
|
|
@ -66,24 +67,5 @@ class Listener {
|
|||
$resourceManager->invalidateAccessCacheForUser($user);
|
||||
}
|
||||
});
|
||||
|
||||
// Stay backward compatible with the legacy event for now
|
||||
$fallbackEventRunning = false;
|
||||
$symfonyDispatcher->addListener('\OCP\Collaboration\Resources::loadAdditionalScripts', function () use ($eventDispatcher, &$fallbackEventRunning) {
|
||||
if ($fallbackEventRunning) {
|
||||
return;
|
||||
}
|
||||
$fallbackEventRunning = true;
|
||||
$eventDispatcher->dispatchTyped(new LoadAdditionalScriptsEvent());
|
||||
$fallbackEventRunning = false;
|
||||
});
|
||||
$eventDispatcher->addListener(LoadAdditionalScriptsEvent::class, static function () use ($symfonyDispatcher, &$fallbackEventRunning) {
|
||||
if ($fallbackEventRunning) {
|
||||
return;
|
||||
}
|
||||
$fallbackEventRunning = true;
|
||||
$symfonyDispatcher->dispatch('\OCP\Collaboration\Resources::loadAdditionalScripts');
|
||||
$fallbackEventRunning = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue