Skip to content

Commit d4eb5cf

Browse files
authored
Merge pull request #5063 from nextcloud/backport-4969-activity-external-user-avatars
[stable12] Fix username and avatar for external users
2 parents 4fec6db + ebf6c62 commit d4eb5cf

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

apps/files/lib/Activity/Provider.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class Provider implements IProvider {
3838

3939
/** @var IL10N */
4040
protected $l;
41+
/** @var IL10N */
42+
protected $activityLang;
4143

4244
/** @var IURLGenerator */
4345
protected $url;
@@ -83,6 +85,7 @@ public function parse($language, IEvent $event, IEvent $previousEvent = null) {
8385
}
8486

8587
$this->l = $this->languageFactory->get('files', $language);
88+
$this->activityLang = $this->languageFactory->get('activity', $language);
8689

8790
if ($this->activityManager->isFormattingFilteredObject()) {
8891
try {
@@ -126,6 +129,11 @@ public function parseShortVersion(IEvent $event, IEvent $previousEvent = null) {
126129
throw new \InvalidArgumentException();
127130
}
128131

132+
if (!isset($parsedParameters['user'])) {
133+
// External user via public link share
134+
$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
135+
}
136+
129137
$this->setSubjects($event, $subject, $parsedParameters);
130138

131139
return $this->eventMerger->mergeEvents('user', $event, $previousEvent);
@@ -182,6 +190,11 @@ public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
182190
throw new \InvalidArgumentException();
183191
}
184192

193+
if (!isset($parsedParameters['user'])) {
194+
// External user via public link share
195+
$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
196+
}
197+
185198
$this->setSubjects($event, $subject, $parsedParameters);
186199

187200
$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
@@ -229,6 +242,12 @@ protected function getParameters(IEvent $event) {
229242
case 'changed_by':
230243
case 'deleted_by':
231244
case 'restored_by':
245+
if ($parameters[1] === '') {
246+
// External user via public link share
247+
return [
248+
'file' => $this->getFile($parameters[0], $event),
249+
];
250+
}
232251
return [
233252
'file' => $this->getFile($parameters[0], $event),
234253
'user' => $this->getUser($parameters[1]),
@@ -241,6 +260,13 @@ protected function getParameters(IEvent $event) {
241260
];
242261
case 'renamed_by':
243262
case 'moved_by':
263+
if ($parameters[1] === '') {
264+
// External user via public link share
265+
return [
266+
'newfile' => $this->getFile($parameters[0]),
267+
'oldfile' => $this->getFile($parameters[2]),
268+
];
269+
}
244270
return [
245271
'newfile' => $this->getFile($parameters[0]),
246272
'user' => $this->getUser($parameters[1]),

0 commit comments

Comments
 (0)