@@ -222,6 +222,8 @@ func (c *Client) chatMessageReceived(data []byte) {
|
||||
c.Username = &msg.Author
|
||||
|
||||
msg.ClientID = c.ClientID
|
||||
msg.RenderAndSanitizeMessageBody()
|
||||
|
||||
_server.SendToAll(msg)
|
||||
}
|
||||
|
||||
|
||||
@@ -52,3 +52,14 @@ func TestAllowEmojiImages(t *testing.T) {
|
||||
t.Errorf("message rendering/sanitation does not match expected. Got\n%s, \n\n want:\n%s", result, expected)
|
||||
}
|
||||
}
|
||||
|
||||
// Test to verify we can pass raw html and render markdown.
|
||||
func TestAllowHTML(t *testing.T) {
|
||||
messageContent := `<img src="/img/emoji/beerparrot.gif"><ul><li>**test thing**</li></ul>`
|
||||
expected := "<p><img src=\"/img/emoji/beerparrot.gif\"><ul><li><strong>test thing</strong></li></ul></p>\n"
|
||||
result := models.RenderMarkdown(messageContent)
|
||||
|
||||
if result != expected {
|
||||
t.Errorf("message rendering does not match expected. Got\n%s, \n\n want:\n%s", result, expected)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,13 +135,6 @@ func (s *server) Listen() {
|
||||
case c := <-s.delCh:
|
||||
s.removeClient(c)
|
||||
case msg := <-s.sendAllCh:
|
||||
// message was received from a client and should be sanitized, validated
|
||||
// and distributed to other clients.
|
||||
//
|
||||
// Will turn markdown into html, sanitize user-supplied raw html
|
||||
// and standardize this message into something safe we can send everyone else.
|
||||
msg.RenderAndSanitizeMessageBody()
|
||||
|
||||
if !msg.Empty() {
|
||||
// set defaults before sending msg to anywhere
|
||||
msg.SetDefaults()
|
||||
|
||||
Reference in New Issue
Block a user