2626 */
2727namespace OC \Collaboration \Resources ;
2828
29+ use OC \EventDispatcher \SymfonyAdapter ;
2930use OCP \Collaboration \Resources \IManager ;
31+ use OCP \Collaboration \Resources \LoadAdditionalScriptsEvent ;
32+ use OCP \EventDispatcher \IEventDispatcher ;
3033use OCP \IGroup ;
3134use OCP \IUser ;
32- use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
3335use Symfony \Component \EventDispatcher \GenericEvent ;
3436
3537class Listener {
36- public static function register (EventDispatcherInterface $ dispatcher ): void {
38+ public static function register (SymfonyAdapter $ symfonyDispatcher , IEventDispatcher $ eventDispatcher ): void {
3739 $ listener = function (GenericEvent $ event ) {
3840 /** @var IUser $user */
3941 $ user = $ event ->getArgument ('user ' );
@@ -42,10 +44,10 @@ public static function register(EventDispatcherInterface $dispatcher): void {
4244
4345 $ resourceManager ->invalidateAccessCacheForUser ($ user );
4446 };
45- $ dispatcher ->addListener (IGroup::class . '::postAddUser ' , $ listener );
46- $ dispatcher ->addListener (IGroup::class . '::postRemoveUser ' , $ listener );
47+ $ symfonyDispatcher ->addListener (IGroup::class . '::postAddUser ' , $ listener );
48+ $ symfonyDispatcher ->addListener (IGroup::class . '::postRemoveUser ' , $ listener );
4749
48- $ dispatcher ->addListener (IUser::class . '::postDelete ' , function (GenericEvent $ event ) {
50+ $ symfonyDispatcher ->addListener (IUser::class . '::postDelete ' , function (GenericEvent $ event ) {
4951 /** @var IUser $user */
5052 $ user = $ event ->getSubject ();
5153 /** @var IManager $resourceManager */
@@ -54,7 +56,7 @@ public static function register(EventDispatcherInterface $dispatcher): void {
5456 $ resourceManager ->invalidateAccessCacheForUser ($ user );
5557 });
5658
57- $ dispatcher ->addListener (IGroup::class . '::preDelete ' , function (GenericEvent $ event ) {
59+ $ symfonyDispatcher ->addListener (IGroup::class . '::preDelete ' , function (GenericEvent $ event ) {
5860 /** @var IGroup $group */
5961 $ group = $ event ->getSubject ();
6062 /** @var IManager $resourceManager */
@@ -64,5 +66,24 @@ public static function register(EventDispatcherInterface $dispatcher): void {
6466 $ resourceManager ->invalidateAccessCacheForUser ($ user );
6567 }
6668 });
69+
70+ // Stay backward compatible with the legacy event for now
71+ $ fallbackEventRunning = false ;
72+ $ symfonyDispatcher ->addListener ('\OCP\Collaboration\Resources::loadAdditionalScripts ' , function () use ($ eventDispatcher , &$ fallbackEventRunning ) {
73+ if ($ fallbackEventRunning ) {
74+ return ;
75+ }
76+ $ fallbackEventRunning = true ;
77+ $ eventDispatcher ->dispatchTyped (new LoadAdditionalScriptsEvent ());
78+ $ fallbackEventRunning = false ;
79+ });
80+ $ eventDispatcher ->addListener (LoadAdditionalScriptsEvent::class, static function () use ($ symfonyDispatcher , &$ fallbackEventRunning ) {
81+ if ($ fallbackEventRunning ) {
82+ return ;
83+ }
84+ $ fallbackEventRunning = true ;
85+ $ symfonyDispatcher ->dispatch ('\OCP\Collaboration\Resources::loadAdditionalScripts ' );
86+ $ fallbackEventRunning = false ;
87+ });
6788 }
6889}
0 commit comments