mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-26 00:03:09 -06:00
Don't allow peeks into encrypted rooms
This commit is contained in:
parent
47808e83df
commit
dafcd3110c
|
|
@ -163,8 +163,7 @@ func (r *Peeker) performPeekRoomByID(
|
||||||
// XXX: we should probably factor out history_visibility checks into a common utility method somewhere
|
// XXX: we should probably factor out history_visibility checks into a common utility method somewhere
|
||||||
// which handles the default value etc.
|
// which handles the default value etc.
|
||||||
var worldReadable = false
|
var worldReadable = false
|
||||||
ev, _ := r.DB.GetStateEvent(ctx, roomID, "m.room.history_visibility", "")
|
if ev, _ := r.DB.GetStateEvent(ctx, roomID, "m.room.history_visibility", ""); ev != nil {
|
||||||
if ev != nil {
|
|
||||||
content := map[string]string{}
|
content := map[string]string{}
|
||||||
if err = json.Unmarshal(ev.Content(), &content); err != nil {
|
if err = json.Unmarshal(ev.Content(), &content); err != nil {
|
||||||
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
|
util.GetLogger(ctx).WithError(err).Error("json.Unmarshal for history visibility failed")
|
||||||
|
|
@ -182,6 +181,13 @@ func (r *Peeker) performPeekRoomByID(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ev, _ := r.DB.GetStateEvent(ctx, roomID, "m.room.encryption", ""); ev != nil {
|
||||||
|
return "", &api.PerformError{
|
||||||
|
Code: api.PerformErrorNotAllowed,
|
||||||
|
Msg: "Cannot peek into an encrypted room",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: handle federated peeks
|
// TODO: handle federated peeks
|
||||||
|
|
||||||
err = r.Inputer.WriteOutputEvents(roomID, []api.OutputEvent{
|
err = r.Inputer.WriteOutputEvents(roomID, []api.OutputEvent{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue