Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2020-07-16 12:36:35 +0300
committerJoas Schilling <coding@schilljs.com>2020-07-16 12:36:35 +0300
commit79a97a9db255e6483740dec8a19b8912b72f6f6a (patch)
treeced3d1bb0caae43f7dbeddb873ac0fb872dbd818 /lib/PublicShareAuth
parent35bb655d79cf7d34a7c8b6f9da079723930c78a2 (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.php48
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();
}
}