diff options
author | Joas Schilling <coding@schilljs.com> | 2020-07-16 12:36:35 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2020-07-16 12:36:35 +0300 |
commit | 79a97a9db255e6483740dec8a19b8912b72f6f6a (patch) | |
tree | ced3d1bb0caae43f7dbeddb873ac0fb872dbd818 /lib/PublicShareAuth | |
parent | 35bb655d79cf7d34a7c8b6f9da079723930c78a2 (diff) |
Use new BeforeTemplateRenderedEvent for share template loading
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/PublicShareAuth')
-rw-r--r-- | lib/PublicShareAuth/TemplateLoader.php | 48 |
1 files changed, 16 insertions, 32 deletions
diff --git a/lib/PublicShareAuth/TemplateLoader.php b/lib/PublicShareAuth/TemplateLoader.php index 1b96fe419..af68c1413 100644 --- a/lib/PublicShareAuth/TemplateLoader.php +++ b/lib/PublicShareAuth/TemplateLoader.php @@ -1,6 +1,7 @@ <?php declare(strict_types=1); + /** * * @copyright Copyright (c) 2018, Daniel Calviño Sánchez (danxuliu@gmail.com) @@ -24,24 +25,22 @@ declare(strict_types=1); namespace OCA\Talk\PublicShareAuth; +use OCA\Files_Sharing\Event\BeforeTemplateRenderedEvent; use OCA\Talk\Config; use OCA\Talk\TInitialState; -use OCP\EventDispatcher\IEventDispatcher; +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; use OCP\ICacheFactory; use OCP\IConfig; use OCP\IInitialStateService; -use OCP\Share\IShare; use OCP\Util; -use Symfony\Component\EventDispatcher\GenericEvent; /** * Helper class to extend the "publicshareauth" template from the server. * - * The "loadRequestPasswordByTalkUi" method loads additional scripts that, when - * run on the browser, adjust the page generated by the server to inject the - * Talk UI as needed. + * The additional scripts modify the page in the browser to inject the Talk UI as needed. */ -class TemplateLoader { +class TemplateLoader implements IEventListener { use TInitialState; public function __construct(IInitialStateService $initialStateService, @@ -49,43 +48,28 @@ class TemplateLoader { Config $talkConfig, IConfig $serverConfig) { $this->initialStateService = $initialStateService; - $this->memcacheFactory = $memcacheFactory; $this->talkConfig = $talkConfig; + $this->memcacheFactory = $memcacheFactory; $this->serverConfig = $serverConfig; } - public static function register(IEventDispatcher $dispatcher): void { - $listener = static function (GenericEvent $event) { - /** @var IShare $share */ - $share = $event->getArgument('share'); - /** @var self $templateLoader */ - $templateLoader = \OC::$server->query(self::class); - $templateLoader->loadRequestPasswordByTalkUi($share); - }; - $dispatcher->addListener('OCA\Files_Sharing::loadAdditionalScripts::publicShareAuth', $listener); - } - /** - * Load the "Request password by Talk" UI in the public share authentication - * page for the given share. - * - * If the "Send Password by Talk" option is not set in the share then no UI - * to request the password is provided. - * - * This method should be called when loading additional scripts for the - * public share authentication page of the server. - * - * @param IShare $share + * Load the "Video verification" UI in the public share auth page. + * @param Event $event */ - public function loadRequestPasswordByTalkUi(IShare $share): void { - if (!$share->getSendPasswordByTalk()) { + public function handle(Event $event): void { + if (!$event instanceof BeforeTemplateRenderedEvent) { + return; + } + + if ($event->getScope() !== BeforeTemplateRenderedEvent::SCOPE_PUBLIC_SHARE_AUTH) { + // If the scope is not the authentication page we don't load this part of the Talk UI return; } Util::addStyle('spreed', 'merged-share-auth'); Util::addScript('spreed', 'talk-public-share-auth-sidebar'); - $this->publishInitialStateForGuest(); } } |