summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/dav/lib/connector/legacydavacl.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/apps/dav/lib/connector/legacydavacl.php b/apps/dav/lib/connector/legacydavacl.php
index 07aefa1b863..eb6ca1fd7d5 100644
--- a/apps/dav/lib/connector/legacydavacl.php
+++ b/apps/dav/lib/connector/legacydavacl.php
@@ -23,7 +23,10 @@
namespace OCA\DAV\Connector;
use OCA\DAV\Connector\Sabre\DavAclPlugin;
+use Sabre\DAV\INode;
+use Sabre\DAV\PropFind;
use Sabre\HTTP\URLUtil;
+use Sabre\DAVACL\Xml\Property\Principal;
class LegacyDAVACL extends DavAclPlugin {
@@ -67,4 +70,16 @@ class LegacyDAVACL extends DavAclPlugin {
}
return "principals/$name";
}
+
+ function propFind(PropFind $propFind, INode $node) {
+ /* Overload current-user-principal */
+ $propFind->handle('{DAV:}current-user-principal', function () {
+ if ($url = parent::getCurrentUserPrincipal()) {
+ return new Principal(Principal::HREF, $url . '/');
+ } else {
+ return new Principal(Principal::UNAUTHENTICATED);
+ }
+ });
+ parent::propFind($propFind, $node);
+ }
}