Merge pull request #20567 from owncloud/dav-internalfileidprop
Add internal fileid to webdav response
This commit is contained in:
commit
90bd53c94e
|
@ -37,6 +37,7 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
|
|||
// namespace
|
||||
const NS_OWNCLOUD = 'http://owncloud.org/ns';
|
||||
const FILEID_PROPERTYNAME = '{http://owncloud.org/ns}id';
|
||||
const INTERNAL_FILEID_PROPERTYNAME = '{http://owncloud.org/ns}fileid';
|
||||
const PERMISSIONS_PROPERTYNAME = '{http://owncloud.org/ns}permissions';
|
||||
const DOWNLOADURL_PROPERTYNAME = '{http://owncloud.org/ns}downloadURL';
|
||||
const SIZE_PROPERTYNAME = '{http://owncloud.org/ns}size';
|
||||
|
@ -98,6 +99,7 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
|
|||
|
||||
$server->xmlNamespaces[self::NS_OWNCLOUD] = 'oc';
|
||||
$server->protectedProperties[] = self::FILEID_PROPERTYNAME;
|
||||
$server->protectedProperties[] = self::INTERNAL_FILEID_PROPERTYNAME;
|
||||
$server->protectedProperties[] = self::PERMISSIONS_PROPERTYNAME;
|
||||
$server->protectedProperties[] = self::SIZE_PROPERTYNAME;
|
||||
$server->protectedProperties[] = self::DOWNLOADURL_PROPERTYNAME;
|
||||
|
@ -175,6 +177,10 @@ class FilesPlugin extends \Sabre\DAV\ServerPlugin {
|
|||
return $node->getFileId();
|
||||
});
|
||||
|
||||
$propFind->handle(self::INTERNAL_FILEID_PROPERTYNAME, function() use ($node) {
|
||||
return $node->getInternalFileId();
|
||||
});
|
||||
|
||||
$propFind->handle(self::PERMISSIONS_PROPERTYNAME, function() use ($node) {
|
||||
$perms = $node->getDavPermissions();
|
||||
if ($this->isPublic) {
|
||||
|
|
|
@ -206,6 +206,13 @@ abstract class Node implements \Sabre\DAV\INode {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getInternalFileId() {
|
||||
return $this->info->getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
|
|
|
@ -11,6 +11,7 @@ namespace OCA\DAV\Tests\Unit\Connector\Sabre;
|
|||
class FilesPlugin extends \Test\TestCase {
|
||||
const GETETAG_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::GETETAG_PROPERTYNAME;
|
||||
const FILEID_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::FILEID_PROPERTYNAME;
|
||||
const INTERNAL_FILEID_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::INTERNAL_FILEID_PROPERTYNAME;
|
||||
const SIZE_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::SIZE_PROPERTYNAME;
|
||||
const PERMISSIONS_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::PERMISSIONS_PROPERTYNAME;
|
||||
const LASTMODIFIED_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::LASTMODIFIED_PROPERTYNAME;
|
||||
|
@ -69,7 +70,10 @@ class FilesPlugin extends \Test\TestCase {
|
|||
|
||||
$node->expects($this->any())
|
||||
->method('getFileId')
|
||||
->will($this->returnValue(123));
|
||||
->will($this->returnValue('00000123instanceid'));
|
||||
$node->expects($this->any())
|
||||
->method('getInternalFileId')
|
||||
->will($this->returnValue('123'));
|
||||
$node->expects($this->any())
|
||||
->method('getEtag')
|
||||
->will($this->returnValue('"abc"'));
|
||||
|
@ -90,6 +94,7 @@ class FilesPlugin extends \Test\TestCase {
|
|||
array(
|
||||
self::GETETAG_PROPERTYNAME,
|
||||
self::FILEID_PROPERTYNAME,
|
||||
self::INTERNAL_FILEID_PROPERTYNAME,
|
||||
self::SIZE_PROPERTYNAME,
|
||||
self::PERMISSIONS_PROPERTYNAME,
|
||||
self::DOWNLOADURL_PROPERTYNAME,
|
||||
|
@ -125,7 +130,8 @@ class FilesPlugin extends \Test\TestCase {
|
|||
);
|
||||
|
||||
$this->assertEquals('"abc"', $propFind->get(self::GETETAG_PROPERTYNAME));
|
||||
$this->assertEquals(123, $propFind->get(self::FILEID_PROPERTYNAME));
|
||||
$this->assertEquals('00000123instanceid', $propFind->get(self::FILEID_PROPERTYNAME));
|
||||
$this->assertEquals('123', $propFind->get(self::INTERNAL_FILEID_PROPERTYNAME));
|
||||
$this->assertEquals(null, $propFind->get(self::SIZE_PROPERTYNAME));
|
||||
$this->assertEquals('DWCKMSR', $propFind->get(self::PERMISSIONS_PROPERTYNAME));
|
||||
$this->assertEquals('http://example.com/', $propFind->get(self::DOWNLOADURL_PROPERTYNAME));
|
||||
|
@ -186,7 +192,7 @@ class FilesPlugin extends \Test\TestCase {
|
|||
);
|
||||
|
||||
$this->assertEquals('"abc"', $propFind->get(self::GETETAG_PROPERTYNAME));
|
||||
$this->assertEquals(123, $propFind->get(self::FILEID_PROPERTYNAME));
|
||||
$this->assertEquals('00000123instanceid', $propFind->get(self::FILEID_PROPERTYNAME));
|
||||
$this->assertEquals(1025, $propFind->get(self::SIZE_PROPERTYNAME));
|
||||
$this->assertEquals('DWCKMSR', $propFind->get(self::PERMISSIONS_PROPERTYNAME));
|
||||
$this->assertEquals(null, $propFind->get(self::DOWNLOADURL_PROPERTYNAME));
|
||||
|
|
Loading…
Reference in New Issue