diff --git a/appinfo/info.xml b/appinfo/info.xml index 8f812b006..9aa7f7a6a 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -62,8 +62,9 @@ Users won't be able to find this Circle using Nextcloud search engine. - OCA\Circles\Activity\SettingAsModerator + OCA\Circles\Activity\SettingAsNonMember OCA\Circles\Activity\SettingAsMember + OCA\Circles\Activity\SettingAsModerator OCA\Circles\Activity\Filter diff --git a/lib/Activity/Provider.php b/lib/Activity/Provider.php index 8963dca6a..8cc414d91 100644 --- a/lib/Activity/Provider.php +++ b/lib/Activity/Provider.php @@ -90,6 +90,7 @@ public function parse($lang, IEvent $event, IEvent $previousEvent = null) { $circle = Circle::fromJSON($params['circle']); $this->setIcon($event, $circle); + $this->parseAsNonMember($event, $circle, $params); $this->parseAsMember($event, $circle, $params); $this->parseAsModerator($event, $circle, $params); @@ -131,6 +132,22 @@ private function setIcon(IEvent $event, Circle $circle) { } + + /** + * @param IEvent $event + * @param Circle $circle + * @param array $params + * + * @throws FakeException + */ + private function parseAsNonMember(IEvent $event, Circle $circle, $params) { + if ($event->getType() !== 'circles_as_non_member') { + return; + } + + $this->parserCircle->parseSubjectCircleCreate($event, $circle); + } + /** * @param IEvent $event * @param Circle $circle @@ -143,7 +160,7 @@ private function parseAsMember(IEvent $event, Circle $circle, $params) { return; } - $this->parserCircle->parseSubjectCircleCreate($event, $circle); +// $this->parserCircle->parseSubjectCircleCreate($event, $circle); $this->parserCircle->parseSubjectCircleDelete($event, $circle); $this->parseMemberAsMember($event, $circle, $params); } diff --git a/lib/Activity/ProviderParser.php b/lib/Activity/ProviderParser.php index f927dc3ac..6254d40b7 100644 --- a/lib/Activity/ProviderParser.php +++ b/lib/Activity/ProviderParser.php @@ -299,7 +299,7 @@ protected function generateViewerParameter(Circle $circle) { */ protected function generateExternalMemberParameter(Member $member) { return [ - 'type' => 'member_' . $member->getType(), + 'type' => 'user', 'id' => $member->getUserId(), 'name' => $member->getDisplayName() . ' (' . $member->getTypeString() . ')', '_parsed' => $member->getDisplayName() @@ -365,7 +365,7 @@ protected function generateUserParameter(Member $member) { */ protected function generateGroupParameter($group) { return [ - 'type' => 'group', + 'type' => 'user-group', 'id' => $group->getUserId(), 'name' => $group->getUserId(), '_parsed' => $group->getUserId() diff --git a/lib/Activity/SettingAsMember.php b/lib/Activity/SettingAsMember.php index 4ad0e2b2b..cd900b4de 100644 --- a/lib/Activity/SettingAsMember.php +++ b/lib/Activity/SettingAsMember.php @@ -34,7 +34,7 @@ public function getIdentifier() { * @since 11.0.0 */ public function getName() { - return $this->l10n->t('On events happening in a Circle you belong'); + return $this->l10n->t('On events happening in a Circle of which you are a member'); } diff --git a/lib/Activity/SettingAsNonMember.php b/lib/Activity/SettingAsNonMember.php new file mode 100644 index 000000000..a5920a79d --- /dev/null +++ b/lib/Activity/SettingAsNonMember.php @@ -0,0 +1,94 @@ +l10n = $l10n; + } + + + /** + * @return string Lowercase a-z and underscore only identifier + * @since 11.0.0 + */ + public function getIdentifier() { + return 'circles_as_non_member'; + } + + + /** + * @return string A translated string + * @since 11.0.0 + */ + public function getName() { + return $this->l10n->t('On global events happening in any Circle'); + } + + + /** + * @return int whether the filter should be rather on the top or bottom of + * the admin section. The filters are arranged in ascending order of the + * priority values. It is required to return a value between 0 and 100. + * @since 11.0.0 + */ + public function getPriority() { + return 60; + } + + + /** + * @return bool True when the option can be changed for the stream + * @since 11.0.0 + */ + public function canChangeStream() { + return true; + } + + + /** + * @return bool True when the option can be changed for the stream + * @since 11.0.0 + */ + public function isDefaultEnabledStream() { + return false; + } + + + /** + * @return bool True when the option can be changed for the mail + * @since 11.0.0 + */ + public function canChangeMail() { + return true; + } + + + /** + * @return bool True when the option can be changed for the stream + * @since 11.0.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + diff --git a/lib/Service/EventsService.php b/lib/Service/EventsService.php index de2eaf772..34444bfad 100644 --- a/lib/Service/EventsService.php +++ b/lib/Service/EventsService.php @@ -113,7 +113,7 @@ public function onCircleCreation(Circle $circle) { return; } - $event = $this->generateEvent('circles_as_member'); + $event = $this->generateEvent('circles_as_non_member'); $event->setSubject('circle_create', ['circle' => json_encode($circle)]); $this->userManager->callForSeenUsers(