From 58799202ebb42397fd5673ac935d97ded5a1a4dc Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 25 Jan 2019 11:52:51 +0100 Subject: [PATCH 1/2] Unify the HTML encoding handling with other ROS apps Signed-off-by: Joas Schilling --- apps/comments/lib/Activity/Provider.php | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php index 719d4c8bb5..5b0a976ef9 100644 --- a/apps/comments/lib/Activity/Provider.php +++ b/apps/comments/lib/Activity/Provider.php @@ -204,7 +204,6 @@ class Provider implements IProvider { try { $comment = $this->commentsManager->get((string) $commentId); $message = $comment->getMessage(); - $message = str_replace(['<', '>', "\n"], ['<', '>', '
'], $message); $mentionCount = 1; $mentions = []; From 47f63da07cb8fd9edd0cc2751029d14ed39072e6 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 25 Jan 2019 12:12:59 +0100 Subject: [PATCH 2/2] Update documentation of setParsed* and setRich* Signed-off-by: Joas Schilling --- lib/public/Activity/IEvent.php | 42 +++++++++++++++++++++++ lib/public/Notification/INotification.php | 42 +++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/lib/public/Activity/IEvent.php b/lib/public/Activity/IEvent.php index aee00039b6..e380eca5c2 100644 --- a/lib/public/Activity/IEvent.php +++ b/lib/public/Activity/IEvent.php @@ -100,6 +100,17 @@ interface IEvent { public function setSubject(string $subject, array $parameters = []): self; /** + * Set a parsed subject + * + * HTML is not allowed in the parsed subject and will be escaped + * automatically by the clients. You can use the RichObjectString system + * provided by the Nextcloud server to highlight important parameters via + * the setRichSubject method, but make sure, that a plain text message is + * always set via setParsedSubject, to support clients which can not handle + * rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $subject * @return $this * @throws \InvalidArgumentException if the subject is invalid @@ -114,6 +125,16 @@ interface IEvent { public function getParsedSubject(): string; /** + * Set a RichObjectString subject + * + * HTML is not allowed in the rich subject and will be escaped automatically + * by the clients, but you can use the RichObjectString system provided by + * the Nextcloud server to highlight important parameters. + * Also make sure, that a plain text subject is always set via + * setParsedSubject, to support clients which can not handle rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $subject * @param array $parameters * @return $this @@ -146,6 +167,17 @@ interface IEvent { public function setMessage(string $message, array $parameters = []): self; /** + * Set a parsed message + * + * HTML is not allowed in the parsed message and will be escaped + * automatically by the clients. You can use the RichObjectString system + * provided by the Nextcloud server to highlight important parameters via + * the setRichMessage method, but make sure, that a plain text message is + * always set via setParsedMessage, to support clients which can not handle + * rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $message * @return $this * @throws \InvalidArgumentException if the message is invalid @@ -160,6 +192,16 @@ interface IEvent { public function getParsedMessage(): string; /** + * Set a RichObjectString message + * + * HTML is not allowed in the rich message and will be escaped automatically + * by the clients, but you can use the RichObjectString system provided by + * the Nextcloud server to highlight important parameters. + * Also make sure, that a plain text message is always set via + * setParsedMessage, to support clients which can not handle rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $message * @param array $parameters * @return $this diff --git a/lib/public/Notification/INotification.php b/lib/public/Notification/INotification.php index 58f0588345..29f2a0e794 100644 --- a/lib/public/Notification/INotification.php +++ b/lib/public/Notification/INotification.php @@ -115,6 +115,17 @@ interface INotification { public function getSubjectParameters(); /** + * Set a parsed subject + * + * HTML is not allowed in the parsed subject and will be escaped + * automatically by the clients. You can use the RichObjectString system + * provided by the Nextcloud server to highlight important parameters via + * the setRichSubject method, but make sure, that a plain text message is + * always set via setParsedSubject, to support clients which can not handle + * rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $subject * @return $this * @throws \InvalidArgumentException if the subject is invalid @@ -129,6 +140,16 @@ interface INotification { public function getParsedSubject(); /** + * Set a RichObjectString subject + * + * HTML is not allowed in the rich subject and will be escaped automatically + * by the clients, but you can use the RichObjectString system provided by + * the Nextcloud server to highlight important parameters. + * Also make sure, that a plain text subject is always set via + * setParsedSubject, to support clients which can not handle rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $subject * @param array $parameters * @return $this @@ -171,6 +192,17 @@ interface INotification { public function getMessageParameters(); /** + * Set a parsed message + * + * HTML is not allowed in the parsed message and will be escaped + * automatically by the clients. You can use the RichObjectString system + * provided by the Nextcloud server to highlight important parameters via + * the setRichMessage method, but make sure, that a plain text message is + * always set via setParsedMessage, to support clients which can not handle + * rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $message * @return $this * @throws \InvalidArgumentException if the message is invalid @@ -185,6 +217,16 @@ interface INotification { public function getParsedMessage(); /** + * Set a RichObjectString message + * + * HTML is not allowed in the rich message and will be escaped automatically + * by the clients, but you can use the RichObjectString system provided by + * the Nextcloud server to highlight important parameters. + * Also make sure, that a plain text message is always set via + * setParsedMessage, to support clients which can not handle rich strings. + * + * See https://github.com/nextcloud/server/issues/1706 for more information. + * * @param string $message * @param array $parameters * @return $this