diff options
author | Julius Härtl <jus@bitgrid.net> | 2019-06-13 12:41:39 +0300 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2019-06-14 08:58:38 +0300 |
commit | 28c0e502ba05f125cdf955de2658278ac07d751f (patch) | |
tree | e0cdd3038cbbca56cce443729bb78ccffd90d386 /lib | |
parent | a008e964c2e1fcebd183bcf7876e971f31568fd8 (diff) |
Add DownloadAsPostMessage
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/DirectViewController.php | 4 | ||||
-rw-r--r-- | lib/Controller/WopiController.php | 3 | ||||
-rw-r--r-- | lib/Db/Wopi.php | 5 | ||||
-rw-r--r-- | lib/Db/WopiMapper.php | 5 | ||||
-rw-r--r-- | lib/TokenManager.php | 8 |
5 files changed, 16 insertions, 9 deletions
diff --git a/lib/Controller/DirectViewController.php b/lib/Controller/DirectViewController.php index 9ce2d2d3..d685b43a 100644 --- a/lib/Controller/DirectViewController.php +++ b/lib/Controller/DirectViewController.php @@ -100,7 +100,7 @@ class DirectViewController extends Controller { } try { - list($urlSrc, $token) = $this->tokenManager->getTokenForTemplate($item, $direct->getUid(), $direct->getTemplateDestination()); + list($urlSrc, $token) = $this->tokenManager->getTokenForTemplate($item, $direct->getUid(), $direct->getTemplateDestination(), true); } catch (\Exception $e) { return new JSONResponse([], Http::STATUS_BAD_REQUEST); } @@ -114,7 +114,7 @@ class DirectViewController extends Controller { throw new \Exception(); } - list($urlSrc, $token) = $this->tokenManager->getToken($item->getId(), null, $direct->getUid()); + list($urlSrc, $token) = $this->tokenManager->getToken($item->getId(), null, $direct->getUid(), true); } catch (\Exception $e) { return new JSONResponse([], Http::STATUS_BAD_REQUEST); } diff --git a/lib/Controller/WopiController.php b/lib/Controller/WopiController.php index fde73007..8bea877f 100644 --- a/lib/Controller/WopiController.php +++ b/lib/Controller/WopiController.php @@ -164,7 +164,8 @@ class WopiController extends Controller { 'DisableExport' => $wopi->getHideDownload(), 'DisableCopy' => $wopi->getHideDownload(), 'HideExportOption' => $wopi->getHideDownload(), - 'HidePrintOption' => $wopi->getHideDownload() + 'HidePrintOption' => $wopi->getHideDownload(), + 'DownloadAsPostMessage' => $wopi->getDirect(), ]; if ($wopi->isTemplateToken()) { diff --git a/lib/Db/Wopi.php b/lib/Db/Wopi.php index 0c35dacf..eff47a03 100644 --- a/lib/Db/Wopi.php +++ b/lib/Db/Wopi.php @@ -84,6 +84,9 @@ class Wopi extends Entity { /** @var bool */ protected $hideDownload; + /** @var bool */ + protected $direct; + public function __construct() { $this->addType('owner_uid', 'string'); $this->addType('editor_uid', 'string'); @@ -96,6 +99,8 @@ class Wopi extends Entity { $this->addType('guest_displayname', 'string'); $this->addType('templateDestination', 'int'); $this->addType('hide_download', 'bool'); + $this->addType('direct', 'bool'); + } public function isTemplateToken() { diff --git a/lib/Db/WopiMapper.php b/lib/Db/WopiMapper.php index f14df181..f89ae449 100644 --- a/lib/Db/WopiMapper.php +++ b/lib/Db/WopiMapper.php @@ -64,7 +64,7 @@ class WopiMapper extends Mapper { * @param int $templateDestination * @return Wopi */ - public function generateFileToken($fileId, $owner, $editor, $version, $updatable, $serverHost, $guestDisplayname, $templateDestination = 0, $hideDownload = false) { + public function generateFileToken($fileId, $owner, $editor, $version, $updatable, $serverHost, $guestDisplayname, $templateDestination = 0, $hideDownload = false, $direct = false) { $token = $this->random->generate(32, ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS); $wopi = Wopi::fromParams([ @@ -78,7 +78,8 @@ class WopiMapper extends Mapper { 'expiry' => $this->timeFactory->getTime() + self::TOKEN_LIFETIME_SECONDS, 'guestDisplayname' => $guestDisplayname, 'templateDestination' => $templateDestination, - 'hideDownload' => $hideDownload + 'hideDownload' => $hideDownload, + 'direct' => $direct ]); /** @var Wopi $wopi */ diff --git a/lib/TokenManager.php b/lib/TokenManager.php index 63787596..899769fd 100644 --- a/lib/TokenManager.php +++ b/lib/TokenManager.php @@ -95,7 +95,7 @@ class TokenManager { * @return array * @throws \Exception */ - public function getToken($fileId, $shareToken = null, $editoruid = null) { + public function getToken($fileId, $shareToken = null, $editoruid = null, $direct = false) { list($fileId,, $version) = Helper::parseFileId($fileId); $owneruid = null; $hideDownload = false; @@ -169,7 +169,7 @@ class TokenManager { $guest_name = NULL; } - $wopi = $this->wopiMapper->generateFileToken($fileId, $owneruid, $editoruid, $version, (int)$updatable, $serverHost, $guest_name, 0, $hideDownload); + $wopi = $this->wopiMapper->generateFileToken($fileId, $owneruid, $editoruid, $version, (int)$updatable, $serverHost, $guest_name, 0, $hideDownload, $direct); try { @@ -182,7 +182,7 @@ class TokenManager { } } - public function getTokenForTemplate(File $file, $userId, $templateDestination) { + public function getTokenForTemplate(File $file, $userId, $templateDestination, $direct = false) { $owneruid = $userId; $editoruid = $userId; $updatable = $file->isUpdateable(); @@ -205,7 +205,7 @@ class TokenManager { $serverHost = $this->urlGenerator->getAbsoluteURL('/'); - $wopi = $this->wopiMapper->generateFileToken($file->getId(), $owneruid, $editoruid, 0, (int)$updatable, $serverHost, null, $templateDestination); + $wopi = $this->wopiMapper->generateFileToken($file->getId(), $owneruid, $editoruid, 0, (int)$updatable, $serverHost, null, $templateDestination, $direct); return [ $this->wopiParser->getUrlSrc($file->getMimeType())['urlsrc'], |