From b17e836e4586b401864d40e90ecac88f7bdc53ba Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 8 Sep 2016 12:56:48 +0200 Subject: FilesHome now also returns DAV properties The files home node must also return DAV properties like etag, permissions, etc for the clients to work like they did with the old endpoint. This fix makes FilesHome extend the Sabre Directory class, this makes the FilesPlugin and other plugins recognize it as a directory and will retrieve the matching properties when applicable. Downstream of https://github.com/owncloud/core/pull/26066 Signed-off-by: Lukas Reschke --- apps/dav/lib/Files/RootCollection.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'apps/dav/lib/Files/RootCollection.php') diff --git a/apps/dav/lib/Files/RootCollection.php b/apps/dav/lib/Files/RootCollection.php index 10459aa8ada..57802d19573 100644 --- a/apps/dav/lib/Files/RootCollection.php +++ b/apps/dav/lib/Files/RootCollection.php @@ -22,7 +22,8 @@ namespace OCA\DAV\Files; use Sabre\DAVACL\AbstractPrincipalCollection; -use Sabre\DAVACL\IPrincipal; +use Sabre\HTTP\URLUtil; +use Sabre\DAV\SimpleCollection; class RootCollection extends AbstractPrincipalCollection { @@ -34,9 +35,17 @@ class RootCollection extends AbstractPrincipalCollection { * supplied by the authentication backend. * * @param array $principalInfo - * @return IPrincipal + * @return INode */ function getChildForPrincipal(array $principalInfo) { + list(,$name) = URLUtil::splitPath($principalInfo['uri']); + $user = \OC::$server->getUserSession()->getUser(); + if ($name !== $user->getUID()) { + // a user is only allowed to see their own home contents, so in case another collection + // is accessed, we return a simple empty collection for now + // in the future this could be considered to be used for accessing shared files + return new SimpleCollection($name); + } return new FilesHome($principalInfo); } -- cgit v1.2.3