Merge pull request #6283 from nextcloud/add-new-propfind

add propfind to detect encryption status
This commit is contained in:
Björn Schießle 2017-08-29 10:47:33 +02:00 committed by GitHub
commit 5adc1efe9f
1 changed files with 7 additions and 1 deletions

View File

@ -66,6 +66,7 @@ class FilesPlugin extends ServerPlugin {
const DATA_FINGERPRINT_PROPERTYNAME = '{http://owncloud.org/ns}data-fingerprint'; const DATA_FINGERPRINT_PROPERTYNAME = '{http://owncloud.org/ns}data-fingerprint';
const HAS_PREVIEW_PROPERTYNAME = '{http://nextcloud.org/ns}has-preview'; const HAS_PREVIEW_PROPERTYNAME = '{http://nextcloud.org/ns}has-preview';
const MOUNT_TYPE_PROPERTYNAME = '{http://nextcloud.org/ns}mount-type'; const MOUNT_TYPE_PROPERTYNAME = '{http://nextcloud.org/ns}mount-type';
const IS_ENCRYPTED_PROPERTYNAME = '{http://nextcloud.org/ns}is-encrypted';
/** /**
* Reference to main server object * Reference to main server object
@ -146,7 +147,6 @@ class FilesPlugin extends ServerPlugin {
* @return void * @return void
*/ */
public function initialize(\Sabre\DAV\Server $server) { public function initialize(\Sabre\DAV\Server $server) {
$server->xml->namespaceMap[self::NS_OWNCLOUD] = 'oc'; $server->xml->namespaceMap[self::NS_OWNCLOUD] = 'oc';
$server->xml->namespaceMap[self::NS_NEXTCLOUD] = 'nc'; $server->xml->namespaceMap[self::NS_NEXTCLOUD] = 'nc';
$server->protectedProperties[] = self::FILEID_PROPERTYNAME; $server->protectedProperties[] = self::FILEID_PROPERTYNAME;
@ -161,6 +161,7 @@ class FilesPlugin extends ServerPlugin {
$server->protectedProperties[] = self::DATA_FINGERPRINT_PROPERTYNAME; $server->protectedProperties[] = self::DATA_FINGERPRINT_PROPERTYNAME;
$server->protectedProperties[] = self::HAS_PREVIEW_PROPERTYNAME; $server->protectedProperties[] = self::HAS_PREVIEW_PROPERTYNAME;
$server->protectedProperties[] = self::MOUNT_TYPE_PROPERTYNAME; $server->protectedProperties[] = self::MOUNT_TYPE_PROPERTYNAME;
$server->protectedProperties[] = self::IS_ENCRYPTED_PROPERTYNAME;
// normally these cannot be changed (RFC4918), but we want them modifiable through PROPPATCH // normally these cannot be changed (RFC4918), but we want them modifiable through PROPPATCH
$allowedProperties = ['{DAV:}getetag']; $allowedProperties = ['{DAV:}getetag'];
@ -343,6 +344,11 @@ class FilesPlugin extends ServerPlugin {
} }
}); });
$propFind->handle(self::IS_ENCRYPTED_PROPERTYNAME, function() use ($node) {
$result = $node->getFileInfo()->isEncrypted() ? '1' : '0';
return $result;
});
$propFind->handle(self::HAS_PREVIEW_PROPERTYNAME, function () use ($node) { $propFind->handle(self::HAS_PREVIEW_PROPERTYNAME, function () use ($node) {
return json_encode($this->previewManager->isAvailable($node->getFileInfo())); return json_encode($this->previewManager->isAvailable($node->getFileInfo()));
}); });