|
|
@@ -47,6 +47,7 @@ namespace OCA\Files_Sharing\Controller; |
|
|
|
use OC\Files\FileInfo; |
|
|
|
use OCA\Files_Sharing\Exceptions\SharingRightsException; |
|
|
|
use OCA\Files_Sharing\External\Storage; |
|
|
|
use OCA\Files_Sharing\SharedStorage; |
|
|
|
use OCA\Files\Helper; |
|
|
|
use OCP\App\IAppManager; |
|
|
|
use OCP\AppFramework\Http\DataResponse; |
|
|
@@ -549,6 +550,14 @@ class ShareAPIController extends OCSController { |
|
|
|
throw new OCSNotFoundException($this->l->t('Public link sharing is disabled by the administrator')); |
|
|
|
} |
|
|
|
|
|
|
|
if ($share->getNode()->getStorage()->instanceOfStorage(SharedStorage::class)) { |
|
|
|
/** @var \OCA\Files_Sharing\SharedStorage $storage */ |
|
|
|
$inheritedAttributes = $share->getNode()->getStorage()->getShare()->getAttributes(); |
|
|
|
if ($inheritedAttributes !== null && $inheritedAttributes->getAttribute('permissions', 'download') === false) { |
|
|
|
$share->setHideDownload(true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ($publicUpload === 'true') { |
|
|
|
// Check if public upload is allowed |
|
|
|
if (!$this->shareManager->shareApiLinkAllowPublicUpload()) { |
|
|
@@ -1125,6 +1134,24 @@ class ShareAPIController extends OCSController { |
|
|
|
$share->setHideDownload(false); |
|
|
|
} |
|
|
|
|
|
|
|
$userFolder = $this->rootFolder->getUserFolder($this->currentUser); |
|
|
|
// get the node with the point of view of the current user |
|
|
|
$nodes = $userFolder->getById($share->getNode()->getId()); |
|
|
|
if (count($nodes) > 0) { |
|
|
|
$node = $nodes[0]; |
|
|
|
$storage = $node->getStorage(); |
|
|
|
if ($storage->instanceOfStorage(SharedStorage::class)) { |
|
|
|
/** @var \OCA\Files_Sharing\SharedStorage $storage */ |
|
|
|
$inheritedAttributes = $storage->getShare()->getAttributes(); |
|
|
|
if ($inheritedAttributes !== null && $inheritedAttributes->getAttribute('permissions', 'download') === false) { |
|
|
|
if ($hideDownload === 'false') { |
|
|
|
throw new OCSBadRequestException($this->l->t('Cannot increate permissions')); |
|
|
|
} |
|
|
|
$share->setHideDownload(true); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$newPermissions = null; |
|
|
|
if ($publicUpload === 'true') { |
|
|
|
$newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE; |