]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix!: Remove legacy event dispatching Symfony's GenericEvent from AdditionalScripts
authorJoas Schilling <coding@schilljs.com>
Tue, 25 Jul 2023 09:48:21 +0000 (11:48 +0200)
committerJoas Schilling <coding@schilljs.com>
Thu, 27 Jul 2023 07:57:52 +0000 (09:57 +0200)
Signed-off-by: Joas Schilling <coding@schilljs.com>
lib/private/AppFramework/Middleware/AdditionalScriptsMiddleware.php
lib/public/AppFramework/Http/TemplateResponse.php
tests/lib/AppFramework/Middleware/AdditionalScriptsMiddlewareTest.php

index ec52dde0ecd2633c22ab62ced9256fb619c461e3..f3f9b07f2a87a2950f5668498d2b2d35a0eb4dd5 100644 (file)
@@ -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));
                }
 
index 0364ba10e505b4de9ffbc29c2f2eccdf481edd25..627906fcc203e082c1048585266e534f25a99c1a 100644 (file)
@@ -65,15 +65,6 @@ class TemplateResponse extends Response {
         */
        public const RENDER_AS_PUBLIC = 'public';
 
-       /**
-        * @deprecated 20.0.0 use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent
-        */
-       public const EVENT_LOAD_ADDITIONAL_SCRIPTS = self::class . '::loadAdditionalScripts';
-       /**
-        * @deprecated 20.0.0 use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent
-        */
-       public const EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN = self::class . '::loadAdditionalScriptsLoggedIn';
-
        /**
         * name of the template
         * @var string
index 1cd6b614aade778374b399dc14ed79bca5eed8b6..d37c1c4760972425fda2688b964eb17cc782670d 100644 (file)
@@ -35,11 +35,8 @@ use OCP\AppFramework\PublicShareController;
 use OCP\EventDispatcher\IEventDispatcher;
 use OCP\IUserSession;
 use PHPUnit\Framework\MockObject\MockObject;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
-       /** @var EventDispatcherInterface|MockObject */
-       private $legacyDispatcher;
        /** @var IUserSession|MockObject */
        private $userSession;
 
@@ -54,11 +51,9 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        protected function setUp(): void {
                parent::setUp();
 
-               $this->legacyDispatcher = $this->createMock(EventDispatcherInterface::class);
                $this->userSession = $this->createMock(IUserSession::class);
                $this->dispatcher = $this->createMock(IEventDispatcher::class);
                $this->middleWare = new AdditionalScriptsMiddleware(
-                       $this->legacyDispatcher,
                        $this->userSession,
                        $this->dispatcher
                );
@@ -67,8 +62,6 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        }
 
        public function testNoTemplateResponse() {
-               $this->legacyDispatcher->expects($this->never())
-                       ->method($this->anything());
                $this->userSession->expects($this->never())
                        ->method($this->anything());
                $this->dispatcher->expects($this->never())
@@ -78,8 +71,6 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        }
 
        public function testPublicShareController() {
-               $this->legacyDispatcher->expects($this->never())
-                       ->method($this->anything());
                $this->userSession->expects($this->never())
                        ->method($this->anything());
                $this->dispatcher->expects($this->never())
@@ -89,15 +80,6 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        }
 
        public function testStandaloneTemplateResponse() {
-               $this->legacyDispatcher->expects($this->once())
-                       ->method('dispatch')
-                       ->willReturnCallback(function ($eventName) {
-                               if ($eventName === TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS) {
-                                       return;
-                               }
-
-                               $this->fail('Wrong event dispatched');
-                       });
                $this->userSession->expects($this->never())
                        ->method($this->anything());
                $this->dispatcher->expects($this->once())
@@ -114,15 +96,6 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        }
 
        public function testTemplateResponseNotLoggedIn() {
-               $this->legacyDispatcher->expects($this->once())
-                       ->method('dispatch')
-                       ->willReturnCallback(function ($eventName) {
-                               if ($eventName === TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS) {
-                                       return;
-                               }
-
-                               $this->fail('Wrong event dispatched');
-                       });
                $this->userSession->method('isLoggedIn')
                        ->willReturn(false);
                $this->dispatcher->expects($this->once())
@@ -141,17 +114,6 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
        public function testTemplateResponseLoggedIn() {
                $events = [];
 
-               $this->legacyDispatcher->expects($this->exactly(2))
-                       ->method('dispatch')
-                       ->willReturnCallback(function ($eventName) use (&$events) {
-                               if ($eventName === TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS ||
-                                       $eventName === TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN) {
-                                       $events[] = $eventName;
-                                       return;
-                               }
-
-                               $this->fail('Wrong event dispatched');
-                       });
                $this->userSession->method('isLoggedIn')
                        ->willReturn(true);
                $this->dispatcher->expects($this->once())
@@ -165,8 +127,5 @@ class AdditionalScriptsMiddlewareTest extends \Test\TestCase {
                        });
 
                $this->middleWare->afterController($this->controller, 'myMethod', $this->createMock(TemplateResponse::class));
-
-               $this->assertContains(TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS, $events);
-               $this->assertContains(TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN, $events);
        }
 }