diff options
author | Antipkin-A <Artem.Antipkin@onlyoffice.com> | 2022-09-09 12:47:52 +0300 |
---|---|---|
committer | Antipkin-A <Artem.Antipkin@onlyoffice.com> | 2022-09-09 13:26:20 +0300 |
commit | 540eff48cc661da02338d44f94c8c467ab5a070f (patch) | |
tree | 63a3fab08971f162d415c016074b1c937817c9c0 | |
parent | 8cf64d04dbd7fa67a26d24df3c9a3ce82ddd1017 (diff) |
checking download attribute to config
-rw-r--r-- | controller/editorapicontroller.php | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/controller/editorapicontroller.php b/controller/editorapicontroller.php index ba5f333..255837b 100644 --- a/controller/editorapicontroller.php +++ b/controller/editorapicontroller.php @@ -37,6 +37,7 @@ use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; use OCP\Share\IManager; +use OCP\Share\IShare; use OCA\Files_Versions\Versions\IVersionManager; use OCA\FilesLock\Service\LockService; @@ -318,6 +319,7 @@ class EditorApiController extends OCSController { $params["document"]["permissions"]["modifyFilter"] = $permissions_modifyFilter; } + $canDownload = true; $restrictedEditing = false; $fileStorage = $file->getStorage(); if (empty($shareToken) && $fileStorage->instanceOfStorage("\OCA\Files_Sharing\SharedStorage")) { @@ -358,6 +360,14 @@ class EditorApiController extends OCSController { $params["document"]["permissions"]["modifyFilter"] = $modifyFilter; } } + + if (method_exists(IShare::class, "getAttributes")) { + $share = empty($share) ? $fileStorage->getShare() : $share; + $attributes = $share->getAttributes(); + if ($attributes !== null && !$attributes->getAttribute("permissions", "download")) { + $canDownload = false; + } + } } $isTempLock = false; @@ -435,9 +445,7 @@ class EditorApiController extends OCSController { if (!empty($shareToken)) { if (method_exists($share, "getHideDownload") && $share->getHideDownload()) { - $params["document"]["permissions"]["download"] = false; - $params["document"]["permissions"]["print"] = false; - $params["document"]["permissions"]["copy"] = false; + $canDownload = false; } $node = $share->getNode(); @@ -531,6 +539,12 @@ class EditorApiController extends OCSController { } } + if (!$canDownload) { + $params["document"]["permissions"]["download"] = false; + $params["document"]["permissions"]["print"] = false; + $params["document"]["permissions"]["copy"] = false; + } + if ($inframe === true) { $params["_files_sharing"] = \OC::$server->getAppManager()->isInstalled("files_sharing"); } |