Skip to content

Commit 5ce21e5

Browse files
committed
Apply the same changes to richToParsed in Notification
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
1 parent 0fa443f commit 5ce21e5

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lib/private/Notification/Notification.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,17 +302,23 @@ public function setRichSubject(string $subject, array $parameters = []): INotifi
302302
return $this;
303303
}
304304

305+
/**
306+
* @throws \InvalidArgumentException if a parameter has no name
307+
*/
305308
private function richToParsed(string $message, array $parameters): string {
306309
$placeholders = [];
307310
$replacements = [];
308311
foreach ($parameters as $placeholder => $parameter) {
309312
$placeholders[] = '{' . $placeholder . '}';
313+
if (!isset($parameter['name']) || !is_string($parameter['name'])) {
314+
throw new \InvalidArgumentException('Invalid rich object, name field is missing');
315+
}
310316
if (($parameter['type'] ?? '') === 'user') {
311-
$replacements[] = '@' . $parameter['name'] ?? 'invalid-user';
317+
$replacements[] = '@' . $parameter['name'];
312318
} elseif (($parameter['type'] ?? '') === 'file') {
313-
$replacements[] = $parameter['path'] ?? $parameter['name'] ?? 'invalid-file';
319+
$replacements[] = $parameter['path'] ?? $parameter['name'];
314320
} else {
315-
$replacements[] = $parameter['name'] ?? 'invalid-object';
321+
$replacements[] = $parameter['name'];
316322
}
317323
}
318324
return str_replace($placeholders, $replacements, $message);

0 commit comments

Comments
 (0)