From bdb52010213bf8640d55a768aa016e168b514e3c Mon Sep 17 00:00:00 2001 From: Fabian Dellwing Date: Thu, 3 Jan 2019 13:53:19 +0100 Subject: [PATCH 1/4] respect privacy options of event do not show calendar events in activity log if event is not public Signed-off-by: Fabian Dellwing --- apps/dav/lib/CalDAV/Activity/Backend.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index 9f929dc195b77..c004162767656 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -415,6 +415,8 @@ public function onTouchCalendarObject($action, array $calendarData, array $share $currentUser = $owner; } + $classification = (isset($objectData['classification']) ? $objectData['classification'] : 0); + $object = $this->getObjectNameAndType($objectData); $action = $action . '_' . $object['type']; @@ -450,7 +452,9 @@ public function onTouchCalendarObject($action, array $calendarData, array $share ], ] ); - $this->activityManager->publish($event); + if ($event->getType() === 'calendar_event' && $classification === 0) { + $this->activityManager->publish($event); + } } } From d124d722c5a58b3182f8329695724df25203ce92 Mon Sep 17 00:00:00 2001 From: Fabian Dellwing Date: Thu, 3 Jan 2019 16:03:01 +0100 Subject: [PATCH 2/4] fix regression make sure to only hide calendar events, not todos show all events in owner activity log Signed-off-by: Fabian Dellwing --- apps/dav/lib/CalDAV/Activity/Backend.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index c004162767656..049cdacbb7b31 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -452,9 +452,10 @@ public function onTouchCalendarObject($action, array $calendarData, array $share ], ] ); - if ($event->getType() === 'calendar_event' && $classification === 0) { - $this->activityManager->publish($event); + if ($event->getType() === 'calendar_event' && $classification !== 0 && $user !== $owner) { + continue; } + $this->activityManager->publish($event); } } From 7fd4befca02e9da029c253c784b229010ccf174f Mon Sep 17 00:00:00 2001 From: Fabian Dellwing Date: Fri, 4 Jan 2019 09:09:30 +0100 Subject: [PATCH 3/4] also hide private tasks fix indentation Signed-off-by: Fabian Dellwing --- apps/dav/lib/CalDAV/Activity/Backend.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index 049cdacbb7b31..9528ac2932a65 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -452,9 +452,9 @@ public function onTouchCalendarObject($action, array $calendarData, array $share ], ] ); - if ($event->getType() === 'calendar_event' && $classification !== 0 && $user !== $owner) { - continue; - } + if ($classification !== 0 && $user !== $owner) { + continue; + } $this->activityManager->publish($event); } } From 24eae49be897b34a62d088432b42333ddd0becb3 Mon Sep 17 00:00:00 2001 From: Fabian Dellwing Date: Fri, 4 Jan 2019 14:48:40 +0100 Subject: [PATCH 4/4] skip loop earlier, use const instead of hardcoded number Signed-off-by: Fabian Dellwing --- apps/dav/lib/CalDAV/Activity/Backend.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index 9528ac2932a65..303ab8cc029b0 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -27,6 +27,7 @@ use OCA\DAV\CalDAV\Activity\Provider\Calendar; use OCA\DAV\CalDAV\Activity\Provider\Event; +use OCA\DAV\CalDAV\CalDavBackend; use OCP\Activity\IEvent; use OCP\Activity\IManager as IActivityManager; use OCP\IGroup; @@ -415,7 +416,7 @@ public function onTouchCalendarObject($action, array $calendarData, array $share $currentUser = $owner; } - $classification = (isset($objectData['classification']) ? $objectData['classification'] : 0); + $classification = (isset($objectData['classification']) ? $objectData['classification'] : CalDavBackend::CLASSIFICATION_PUBLIC); $object = $this->getObjectNameAndType($objectData); $action = $action . '_' . $object['type']; @@ -436,6 +437,9 @@ public function onTouchCalendarObject($action, array $calendarData, array $share $users[] = $owner; foreach ($users as $user) { + if ($classification !== CalDavBackend::CLASSIFICATION_PUBLIC && $user !== $owner) { + continue; + } $event->setAffectedUser($user) ->setSubject( $user === $currentUser ? $action . '_self' : $action, @@ -452,9 +456,6 @@ public function onTouchCalendarObject($action, array $calendarData, array $share ], ] ); - if ($classification !== 0 && $user !== $owner) { - continue; - } $this->activityManager->publish($event); } }