summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJohannes Merkel <mail@johannesgge.de>2024-01-03 15:49:53 +0100
committerChristoph Wurst <christoph@winzerhof-wurst.at>2024-01-18 08:40:30 +0100
commit97d3ef565bdbbb62db09357d12f46d2586bd2590 (patch)
treedd31a42cd0dedb78b6406219ba3604f80633ed27 /apps
parent070cfc247f666acde5b2a5354a7b5badfc15783d (diff)
downloadnextcloud-server-97d3ef565bdbbb62db09357d12f46d2586bd2590.tar.gz
nextcloud-server-97d3ef565bdbbb62db09357d12f46d2586bd2590.zip
fix(CalDAV): set acls for DeletedCalendarObjectsCollection
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
Diffstat (limited to 'apps')
-rw-r--r--apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php25
1 files changed, 24 insertions, 1 deletions
diff --git a/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php b/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php
index 20d05c047b1..0c54839127c 100644
--- a/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php
+++ b/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php
@@ -31,11 +31,15 @@ use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Exception\NotImplemented;
+use Sabre\DAVACL\ACLTrait;
+use Sabre\DAVACL\IACL;
use function array_map;
use function implode;
use function preg_match;
-class DeletedCalendarObjectsCollection implements ICalendarObjectContainer {
+class DeletedCalendarObjectsCollection implements ICalendarObjectContainer, IACL {
+ use ACLTrait;
+
public const NAME = 'objects';
/** @var CalDavBackend */
@@ -129,4 +133,23 @@ class DeletedCalendarObjectsCollection implements ICalendarObjectContainer {
[$calendarInfo['id'], 'ics'],
);
}
+
+ public function getOwner() {
+ return $this->principalInfo['uri'];
+ }
+
+ public function getACL(): array {
+ return [
+ [
+ 'privilege' => '{DAV:}read',
+ 'principal' => $this->getOwner(),
+ 'protected' => true,
+ ],
+ [
+ 'privilege' => '{DAV:}unbind',
+ 'principal' => '{DAV:}owner',
+ 'protected' => true,
+ ]
+ ];
+ }
}