@@ -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