FIX: correctly render html of event title (#623)

This has been lost during the move to glimmer.

---------

Co-authored-by: David Taylor <david@taylorhq.com>
This commit is contained in:
Joffrey JAFFEUX 2024-10-22 23:18:15 +09:00 committed by GitHub
parent 382ad8f477
commit ee693e33b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 7 deletions

View File

@ -4,9 +4,8 @@ import { service } from "@ember/service";
import { modifier } from "ember-modifier"; import { modifier } from "ember-modifier";
import PluginOutlet from "discourse/components/plugin-outlet"; import PluginOutlet from "discourse/components/plugin-outlet";
import concatClass from "discourse/helpers/concat-class"; import concatClass from "discourse/helpers/concat-class";
import replaceEmoji from "discourse/helpers/replace-emoji";
import routeAction from "discourse/helpers/route-action"; import routeAction from "discourse/helpers/route-action";
import { emojiUnescape } from "discourse/lib/text";
import { escapeExpression } from "discourse/lib/utilities";
import icon from "discourse-common/helpers/d-icon"; import icon from "discourse-common/helpers/d-icon";
import Creator from "./creator"; import Creator from "./creator";
import Dates from "./dates"; import Dates from "./dates";
@ -53,9 +52,7 @@ export default class DiscoursePostEvent extends Component {
} }
get eventName() { get eventName() {
return emojiUnescape( return this.args.event.name || this.args.event.post.topic.title;
escapeExpression(this.args.event.name) || this.args.event.post.topic.title
);
} }
get isPublicEvent() { get isPublicEvent() {
@ -86,7 +83,7 @@ export default class DiscoursePostEvent extends Component {
</div> </div>
<div class="event-info"> <div class="event-info">
<span class="name"> <span class="name">
{{this.eventName}} {{replaceEmoji this.eventName}}
</span> </span>
<div class="status-and-creators"> <div class="status-and-creators">
<PluginOutlet <PluginOutlet

View File

@ -9,10 +9,24 @@ describe "Post event", type: :system do
SiteSetting.calendar_enabled = true SiteSetting.calendar_enabled = true
SiteSetting.discourse_post_event_enabled = true SiteSetting.discourse_post_event_enabled = true
sign_in(admin) sign_in(admin)
visit "/new-topic" end
it "safely renders event name" do
post =
PostCreator.create(
admin,
title: "My test meetup event",
raw: "[event name=':cat: <script>alert(1);</script>' start='2222-02-22 00:00']\n[/event]",
)
visit(post.topic.url)
expect(page).to have_css(".event-info .name img.emoji[title='cat']")
expect(page).to have_css(".event-info .name", text: "<script>alert(1);</script>")
end end
it "can create, close, and open an event" do it "can create, close, and open an event" do
visit "/new-topic"
title = "My upcoming l33t event" title = "My upcoming l33t event"
tomorrow = (Time.zone.now + 1.day).strftime("%Y-%m-%d") tomorrow = (Time.zone.now + 1.day).strftime("%Y-%m-%d")