diff options
Diffstat (limited to 'lib/private/connector/sabre')
-rw-r--r-- | lib/private/connector/sabre/file.php | 13 | ||||
-rw-r--r-- | lib/private/connector/sabre/filesplugin.php | 10 |
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php index 54eea54552f..cb03f30e023 100644 --- a/lib/private/connector/sabre/file.php +++ b/lib/private/connector/sabre/file.php @@ -226,6 +226,19 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements \Sabre\ return \OC_Helper::getSecureMimeType($mimeType); } + public function getDirectDownload() { + if (\OCP\App::isEnabled('encryption')) { + return []; + } + /** @var \OCP\Files\Storage $storage */ + list($storage, $internalPath) = $this->fileView->resolvePath($this->path); + if (is_null($storage)) { + return []; + } + + return $storage->getDirectDownload($internalPath); + } + /** * @param resource $data * @return null|string diff --git a/lib/private/connector/sabre/filesplugin.php b/lib/private/connector/sabre/filesplugin.php index 37798d8b162..b011a050a5c 100644 --- a/lib/private/connector/sabre/filesplugin.php +++ b/lib/private/connector/sabre/filesplugin.php @@ -39,6 +39,7 @@ class OC_Connector_Sabre_FilesPlugin extends \Sabre\DAV\ServerPlugin $server->protectedProperties[] = '{' . self::NS_OWNCLOUD . '}id'; $server->protectedProperties[] = '{' . self::NS_OWNCLOUD . '}permissions'; $server->protectedProperties[] = '{' . self::NS_OWNCLOUD . '}size'; + $server->protectedProperties[] = '{' . self::NS_OWNCLOUD . '}dDU'; $this->server = $server; $this->server->subscribeEvent('beforeGetProperties', array($this, 'beforeGetProperties')); @@ -80,6 +81,15 @@ class OC_Connector_Sabre_FilesPlugin extends \Sabre\DAV\ServerPlugin } } + if ($node instanceof OC_Connector_Sabre_File) { + /** @var $node OC_Connector_Sabre_File */ + $directDownloadUrl = $node->getDirectDownload(); + if (isset($directDownloadUrl['url'])) { + $directDownloadUrlPropertyName = '{' . self::NS_OWNCLOUD . '}dDU'; + $returnedProperties[200][$directDownloadUrlPropertyName] = $directDownloadUrl['url']; + } + } + if ($node instanceof OC_Connector_Sabre_Directory) { $sizePropertyName = '{' . self::NS_OWNCLOUD . '}size'; |