diff options
Diffstat (limited to 'apps/sharebymail/lib/Activity.php')
-rw-r--r-- | apps/sharebymail/lib/Activity.php | 180 |
1 files changed, 42 insertions, 138 deletions
diff --git a/apps/sharebymail/lib/Activity.php b/apps/sharebymail/lib/Activity.php index 3992f0f942b..2d8289affa4 100644 --- a/apps/sharebymail/lib/Activity.php +++ b/apps/sharebymail/lib/Activity.php @@ -1,62 +1,25 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Bjoern Schiessle <bjoern@schiessle.org> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\ShareByMail; +use OCP\Activity\Exceptions\UnknownActivityException; use OCP\Activity\IEvent; use OCP\Activity\IManager; use OCP\Activity\IProvider; use OCP\Contacts\IManager as IContactsManager; use OCP\IL10N; use OCP\IURLGenerator; -use OCP\IUser; use OCP\IUserManager; use OCP\L10N\IFactory; class Activity implements IProvider { - - /** @var IFactory */ - protected $languageFactory; - /** @var IL10N */ protected $l; - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; - - /** @var IUserManager */ - protected $userManager; - /** @var IContactsManager */ - protected $contactsManager; - - /** @var array */ - protected $displayNames = []; - /** @var array */ protected $contactNames = []; @@ -74,12 +37,13 @@ class Activity implements IProvider { * @param IUserManager $userManager * @param IContactsManager $contactsManager */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IContactsManager $contactsManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - $this->userManager = $userManager; - $this->contactsManager = $contactsManager; + public function __construct( + protected IFactory $languageFactory, + protected IURLGenerator $url, + protected IManager $activityManager, + protected IUserManager $userManager, + protected IContactsManager $contactsManager, + ) { } /** @@ -87,12 +51,12 @@ class Activity implements IProvider { * @param IEvent $event * @param IEvent|null $previousEvent * @return IEvent - * @throws \InvalidArgumentException + * @throws UnknownActivityException * @since 11.0.0 */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { + public function parse($language, IEvent $event, ?IEvent $previousEvent = null) { if ($event->getApp() !== 'sharebymail') { - throw new \InvalidArgumentException(); + throw new UnknownActivityException(); } $this->l = $this->languageFactory->get('sharebymail', $language); @@ -118,72 +82,54 @@ class Activity implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_SELF) { - $event->setParsedSubject($this->l->t('Shared with %1$s', [ - $parsedParameters['email']['name'], - ])) - ->setRichSubject($this->l->t('Shared with {email}'), [ - 'email' => $parsedParameters['email'], - ]); + $event->setRichSubject($this->l->t('Shared with {email}'), [ + 'email' => $parsedParameters['email'], + ]); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_BY) { - $event->setParsedSubject($this->l->t('Shared with %1$s by %2$s', [ - $parsedParameters['email']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('Shared with {email} by {actor}'), [ - 'email' => $parsedParameters['email'], - 'actor' => $parsedParameters['actor'], - ]); + $event->setRichSubject($this->l->t('Shared with {email} by {actor}'), [ + 'email' => $parsedParameters['email'], + 'actor' => $parsedParameters['actor'], + ]); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_UNSHARED_EMAIL_SELF) { - $event->setParsedSubject($this->l->t('Unshared from %1$s', [ - $parsedParameters['email']['name'], - ])) - ->setRichSubject($this->l->t('Unshared from {email}'), [ - 'email' => $parsedParameters['email'], - ]); + $event->setRichSubject($this->l->t('Unshared from {email}'), [ + 'email' => $parsedParameters['email'], + ]); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_UNSHARED_EMAIL_BY) { - $event->setParsedSubject($this->l->t('Unshared from %1$s by %2$s', [ - $parsedParameters['email']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('Unshared from {email} by {actor}'), [ - 'email' => $parsedParameters['email'], - 'actor' => $parsedParameters['actor'], - ]); + $event->setRichSubject($this->l->t('Unshared from {email} by {actor}'), [ + 'email' => $parsedParameters['email'], + 'actor' => $parsedParameters['actor'], + ]); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND) { - $event->setParsedSubject($this->l->t('Password for mail share sent to %1$s', [ - $parsedParameters['email']['name'] - ])) - ->setRichSubject($this->l->t('Password for mail share sent to {email}'), [ - 'email' => $parsedParameters['email'] - ]); + $event->setRichSubject($this->l->t('Password for mail share sent to {email}'), [ + 'email' => $parsedParameters['email'] + ]); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND_SELF) { - $event->setParsedSubject($this->l->t('Password for mail share sent to you')) - ->setRichSubject($this->l->t('Password for mail share sent to you')); + $event->setRichSubject($this->l->t('Password for mail share sent to you')); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { @@ -206,67 +152,42 @@ class Activity implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_SELF) { - $event->setParsedSubject($this->l->t('You shared %1$s with %2$s by mail', [ - $parsedParameters['file']['path'], - $parsedParameters['email']['name'], - ])) - ->setRichSubject($this->l->t('You shared {file} with {email} by mail'), $parsedParameters); + $event->setRichSubject($this->l->t('You shared {file} with {email} by mail'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_BY) { - $event->setParsedSubject($this->l->t('%3$s shared %1$s with %2$s by mail', [ - $parsedParameters['file']['path'], - $parsedParameters['email']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared {file} with {email} by mail'), $parsedParameters); + $event->setRichSubject($this->l->t('{actor} shared {file} with {email} by mail'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_UNSHARED_EMAIL_SELF) { - $event->setParsedSubject($this->l->t('You unshared %1$s from %2$s by mail', [ - $parsedParameters['file']['path'], - $parsedParameters['email']['name'], - ])) - ->setRichSubject($this->l->t('You unshared {file} from {email} by mail'), $parsedParameters); + $event->setRichSubject($this->l->t('You unshared {file} from {email} by mail'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_UNSHARED_EMAIL_BY) { - $event->setParsedSubject($this->l->t('%3$s unshared %1$s from %2$s by mail', [ - $parsedParameters['file']['path'], - $parsedParameters['email']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} unshared {file} from {email} by mail'), $parsedParameters); + $event->setRichSubject($this->l->t('{actor} unshared {file} from {email} by mail'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND) { - $event->setParsedSubject($this->l->t('Password to access %1$s was sent to %2s', [ - $parsedParameters['file']['path'], - $parsedParameters['email']['name'] - ])) - ->setRichSubject($this->l->t('Password to access {file} was sent to {email}'), $parsedParameters); + $event->setRichSubject($this->l->t('Password to access {file} was sent to {email}'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); } } elseif ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND_SELF) { - $event->setParsedSubject( - $this->l->t('Password to access %1$s was sent to you', - [$parsedParameters['file']['path']])) - ->setRichSubject($this->l->t('Password to access {file} was sent to you'), $parsedParameters); + $event->setRichSubject($this->l->t('Password to access {file} was sent to you'), $parsedParameters); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png'))); } else { @@ -313,12 +234,12 @@ class Activity implements IProvider { /** * @param int $id * @param string $path - * @return array + * @return array<string,string> */ - protected function generateFileParameter($id, $path) { + protected function generateFileParameter($id, $path): array { return [ 'type' => 'file', - 'id' => $id, + 'id' => (string)$id, 'name' => basename($path), 'path' => trim($path, '/'), 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), @@ -346,14 +267,10 @@ class Activity implements IProvider { * @return array */ protected function generateUserParameter($uid) { - if (!isset($this->displayNames[$uid])) { - $this->displayNames[$uid] = $this->getDisplayName($uid); - } - return [ 'type' => 'user', 'id' => $uid, - 'name' => $this->displayNames[$uid], + 'name' => $this->userManager->getDisplayName($uid) ?? $uid, ]; } @@ -381,17 +298,4 @@ class Activity implements IProvider { return $email; } - - /** - * @param string $uid - * @return string - */ - protected function getDisplayName($uid) { - $user = $this->userManager->get($uid); - if ($user instanceof IUser) { - return $user->getDisplayName(); - } else { - return $uid; - } - } } |