mirror of
https://github.com/strukturag/nextcloud-spreed-signaling
synced 2024-06-08 00:42:25 +02:00
Create copy of filtered messages.
Otherwise it can happen that the modified message is reused and sent to another session.
This commit is contained in:
parent
5296e09a2e
commit
75e5013dd8
|
@ -1173,7 +1173,16 @@ func (s *ClientSession) filterMessage(message *ServerMessage) *ServerMessage {
|
||||||
switch message.Event.Type {
|
switch message.Event.Type {
|
||||||
case "join":
|
case "join":
|
||||||
if s.HasPermission(PERMISSION_HIDE_DISPLAYNAMES) {
|
if s.HasPermission(PERMISSION_HIDE_DISPLAYNAMES) {
|
||||||
message.Event.Join = filterDisplayNames(message.Event.Join)
|
// Create unique copy of message for only this client.
|
||||||
|
message = &ServerMessage{
|
||||||
|
Id: message.Id,
|
||||||
|
Type: message.Type,
|
||||||
|
Event: &EventServerMessage{
|
||||||
|
Type: message.Event.Type,
|
||||||
|
Target: message.Event.Target,
|
||||||
|
Join: filterDisplayNames(message.Event.Join),
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case "message":
|
case "message":
|
||||||
if message.Event.Message == nil || message.Event.Message.Data == nil || len(*message.Event.Message.Data) == 0 || !s.HasPermission(PERMISSION_HIDE_DISPLAYNAMES) {
|
if message.Event.Message == nil || message.Event.Message.Data == nil || len(*message.Event.Message.Data) == 0 || !s.HasPermission(PERMISSION_HIDE_DISPLAYNAMES) {
|
||||||
|
@ -1189,7 +1198,19 @@ func (s *ClientSession) filterMessage(message *ServerMessage) *ServerMessage {
|
||||||
if displayName, found := (*data.Chat.Comment)["actorDisplayName"]; found && displayName != "" {
|
if displayName, found := (*data.Chat.Comment)["actorDisplayName"]; found && displayName != "" {
|
||||||
(*data.Chat.Comment)["actorDisplayName"] = ""
|
(*data.Chat.Comment)["actorDisplayName"] = ""
|
||||||
if encoded, err := json.Marshal(data); err == nil {
|
if encoded, err := json.Marshal(data); err == nil {
|
||||||
message.Event.Message.Data = (*json.RawMessage)(&encoded)
|
// Create unique copy of message for only this client.
|
||||||
|
message = &ServerMessage{
|
||||||
|
Id: message.Id,
|
||||||
|
Type: message.Type,
|
||||||
|
Event: &EventServerMessage{
|
||||||
|
Type: message.Event.Type,
|
||||||
|
Target: message.Event.Target,
|
||||||
|
Message: &RoomEventMessage{
|
||||||
|
RoomId: message.Event.Message.RoomId,
|
||||||
|
Data: (*json.RawMessage)(&encoded),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue