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

github.com/ONLYOFFICE/onlyoffice-nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntipkin-A <Artem.Antipkin@onlyoffice.com>2022-09-09 12:47:52 +0300
committerAntipkin-A <Artem.Antipkin@onlyoffice.com>2022-09-09 13:26:20 +0300
commit540eff48cc661da02338d44f94c8c467ab5a070f (patch)
tree63a3fab08971f162d415c016074b1c937817c9c0
parent8cf64d04dbd7fa67a26d24df3c9a3ce82ddd1017 (diff)
checking download attribute to config
-rw-r--r--controller/editorapicontroller.php20
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");
}