Skip to content
Snippets Groups Projects
Unverified Commit 32d76c7c authored by Joas Schilling's avatar Joas Schilling
Browse files

Correctly handle the classification of events in the activity stream

parent 35a372da
No related branches found
No related tags found
No related merge requests found
...@@ -27,6 +27,7 @@ namespace OCA\DAV\CalDAV\Activity; ...@@ -27,6 +27,7 @@ namespace OCA\DAV\CalDAV\Activity;
use OCA\DAV\CalDAV\Activity\Provider\Calendar; use OCA\DAV\CalDAV\Activity\Provider\Calendar;
use OCA\DAV\CalDAV\Activity\Provider\Event; use OCA\DAV\CalDAV\Activity\Provider\Event;
use OCA\DAV\CalDAV\CalDavBackend;
use OCP\Activity\IEvent; use OCP\Activity\IEvent;
use OCP\Activity\IManager as IActivityManager; use OCP\Activity\IManager as IActivityManager;
use OCP\IGroup; use OCP\IGroup;
...@@ -415,6 +416,7 @@ class Backend { ...@@ -415,6 +416,7 @@ class Backend {
$currentUser = $owner; $currentUser = $owner;
} }
$classification = $objectData['classification'] ?? CalDavBackend::CLASSIFICATION_PUBLIC;
$object = $this->getObjectNameAndType($objectData); $object = $this->getObjectNameAndType($objectData);
$action = $action . '_' . $object['type']; $action = $action . '_' . $object['type'];
...@@ -434,6 +436,11 @@ class Backend { ...@@ -434,6 +436,11 @@ class Backend {
$users[] = $owner; $users[] = $owner;
foreach ($users as $user) { foreach ($users as $user) {
if ($classification === CalDavBackend::CLASSIFICATION_PRIVATE && $user !== $owner) {
// Private events are only shown to the owner
continue;
}
$event->setAffectedUser($user) $event->setAffectedUser($user)
->setSubject( ->setSubject(
$user === $currentUser ? $action . '_self' : $action, $user === $currentUser ? $action . '_self' : $action,
...@@ -446,7 +453,8 @@ class Backend { ...@@ -446,7 +453,8 @@ class Backend {
], ],
'object' => [ 'object' => [
'id' => $object['id'], 'id' => $object['id'],
'name' => $object['name'], 'name' => $classification === CalDavBackend::CLASSIFICATION_CONFIDENTIAL && $user !== $owner ? 'Busy' : $object['name'],
'classified' => $classification === CalDavBackend::CLASSIFICATION_CONFIDENTIAL && $user !== $owner,
], ],
] ]
); );
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
namespace OCA\DAV\CalDAV\Activity\Provider; namespace OCA\DAV\CalDAV\Activity\Provider;
use OCA\DAV\CalDAV\CalDavBackend;
use OCP\Activity\IEvent; use OCP\Activity\IEvent;
use OCP\Activity\IEventMerger; use OCP\Activity\IEventMerger;
use OCP\Activity\IManager; use OCP\Activity\IManager;
...@@ -131,14 +132,14 @@ class Event extends Base { ...@@ -131,14 +132,14 @@ class Event extends Base {
return [ return [
'actor' => $this->generateUserParameter($parameters['actor']), 'actor' => $this->generateUserParameter($parameters['actor']),
'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
'event' => $this->generateObjectParameter($parameters['object']), 'event' => $this->generateClassifiedObjectParameter($parameters['object']),
]; ];
case self::SUBJECT_OBJECT_ADD . '_event_self': case self::SUBJECT_OBJECT_ADD . '_event_self':
case self::SUBJECT_OBJECT_DELETE . '_event_self': case self::SUBJECT_OBJECT_DELETE . '_event_self':
case self::SUBJECT_OBJECT_UPDATE . '_event_self': case self::SUBJECT_OBJECT_UPDATE . '_event_self':
return [ return [
'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
'event' => $this->generateObjectParameter($parameters['object']), 'event' => $this->generateClassifiedObjectParameter($parameters['object']),
]; ];
} }
} }
...@@ -168,4 +169,12 @@ class Event extends Base { ...@@ -168,4 +169,12 @@ class Event extends Base {
throw new \InvalidArgumentException(); throw new \InvalidArgumentException();
} }
private function generateClassifiedObjectParameter(array $eventData) {
$parameter = $this->generateObjectParameter($eventData);
if ($eventData['classified']) {
$parameter['name'] = $this->l->t('Busy');
}
return $parameter;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment