diff options
Diffstat (limited to 'apps/federatedfilesharing/lib/Notifier.php')
-rw-r--r-- | apps/federatedfilesharing/lib/Notifier.php | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/apps/federatedfilesharing/lib/Notifier.php b/apps/federatedfilesharing/lib/Notifier.php index 02a46d65bba..9c0f9080781 100644 --- a/apps/federatedfilesharing/lib/Notifier.php +++ b/apps/federatedfilesharing/lib/Notifier.php @@ -102,8 +102,14 @@ class Notifier implements INotifier { $params = $notification->getSubjectParameters(); if ($params[0] !== $params[1] && $params[1] !== null) { $notification->setParsedSubject( - $l->t('You received "%3$s" as a remote share from %1$s (on behalf of %2$s)', $params) + $l->t('You received "%3$s" as a remote share from %4$s (%1$s) (on behalf of %5$s (%2$s))', $params) ); + + $initiator = $params[0]; + $initiatorDisplay = isset($params[3]) ? $params[3] : null; + $owner = $params[1]; + $ownerDisplay = isset($params[4]) ? $params[4] : null; + $notification->setRichSubject( $l->t('You received {share} as a remote share from {user} (on behalf of {behalf})'), [ @@ -112,14 +118,18 @@ class Notifier implements INotifier { 'id' => $notification->getObjectId(), 'name' => $params[2], ], - 'user' => $this->createRemoteUser($params[0]), - 'behalf' => $this->createRemoteUser($params[1]), + 'user' => $this->createRemoteUser($initiator, $initiatorDisplay), + 'behalf' => $this->createRemoteUser($owner, $ownerDisplay), ] ); } else { $notification->setParsedSubject( - $l->t('You received "%3$s" as a remote share from %1$s', $params) + $l->t('You received "%3$s" as a remote share from %4$s (%1$s)', $params) ); + + $owner = $params[0]; + $ownerDisplay = isset($params[3]) ? $params[3] : null; + $notification->setRichSubject( $l->t('You received {share} as a remote share from {user}'), [ @@ -128,7 +138,7 @@ class Notifier implements INotifier { 'id' => $notification->getObjectId(), 'name' => $params[2], ], - 'user' => $this->createRemoteUser($params[0]), + 'user' => $this->createRemoteUser($owner, $ownerDisplay), ] ); } @@ -164,15 +174,17 @@ class Notifier implements INotifier { * @param string $cloudId * @return array */ - protected function createRemoteUser($cloudId) { - $displayName = $cloudId; + protected function createRemoteUser($cloudId, $displayName = null) { try { $resolvedId = $this->cloudIdManager->resolveCloudId($cloudId); - $displayName = $this->getDisplayName($resolvedId); + if ($displayName === null) { + $displayName = $this->getDisplayName($resolvedId); + } $user = $resolvedId->getUser(); $server = $resolvedId->getRemote(); } catch (HintException $e) { $user = $cloudId; + $displayName = $cloudId; $server = ''; } |