Only pass valid subject parameters when commenting

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2018-12-20 10:36:56 +01:00
parent cf41665c0a
commit 5c0455ec56
3 changed files with 16 additions and 6 deletions

View File

@@ -158,18 +158,19 @@ class DeckProvider implements IProvider {
* @param array $parameters
*/
protected function setSubjects(IEvent $event, $subject, array $parameters) {
$placeholders = $replacements = [];
$placeholders = $replacements = $richParameters = [];
foreach ($parameters as $placeholder => $parameter) {
$placeholders[] = '{' . $placeholder . '}';
if (is_array($parameter) && array_key_exists('name', $parameter)) {
$replacements[] = $parameter['name'];
$richParameters[$placeholder] = $parameter;
} else {
$replacements[] = '';
}
}
$event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
->setRichSubject($subject, $parameters);
->setRichSubject($subject, $richParameters);
$event->setSubject($subject, $parameters);
}
@@ -284,7 +285,11 @@ class DeckProvider implements IProvider {
$event->setParsedMessage($comment->getMessage());
} catch (NotFoundException $e) {
}
$params['comment'] = $subjectParams['comment'];
$params['comment'] =[
'type' => 'highlight',
'id' => $subjectParams['comment'],
'name' => $comment->getMessage()
];
}
return $params;
}