mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-08-02 22:22:46 +00:00
Bugfixes and line up where we'll dump history visibility code
This commit is contained in:
parent
493e2ca389
commit
c8dd962505
5 changed files with 60 additions and 21 deletions
|
@ -491,24 +491,28 @@ func joinEventsFromHistoryVisibility(
|
|||
break
|
||||
}
|
||||
}
|
||||
if historyVisibilityNID == 0 {
|
||||
return nil, fmt.Errorf("no history visibility event for room %s", roomID)
|
||||
}
|
||||
stateEvents, err := db.Events(ctx, []types.EventNID{historyVisibilityNID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(stateEvents) != 1 {
|
||||
return nil, fmt.Errorf("failed to load history visibility event nid %d", historyVisibilityNID)
|
||||
}
|
||||
var hisVisEvent *gomatrixserverlib.Event
|
||||
if stateEvents[0].Type() == gomatrixserverlib.MRoomHistoryVisibility && stateEvents[0].StateKeyEquals("") {
|
||||
hisVisEvent = &stateEvents[0].Event
|
||||
}
|
||||
visibility, err := auth.HistoryVisibilityForRoom(hisVisEvent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
// by default visibility is shared if there is no history visibility event
|
||||
visibility := "shared"
|
||||
if historyVisibilityNID != 0 {
|
||||
// load the event and check it
|
||||
stateEvents, err := db.Events(ctx, []types.EventNID{historyVisibilityNID})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(stateEvents) != 1 {
|
||||
return nil, fmt.Errorf("failed to load history visibility event nid %d", historyVisibilityNID)
|
||||
}
|
||||
var hisVisEvent *gomatrixserverlib.Event
|
||||
if stateEvents[0].Type() == gomatrixserverlib.MRoomHistoryVisibility && stateEvents[0].StateKeyEquals("") {
|
||||
hisVisEvent = &stateEvents[0].Event
|
||||
}
|
||||
visibility, err = auth.HistoryVisibilityForRoom(hisVisEvent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if visibility != "shared" {
|
||||
logrus.Infof("ServersAtEvent history visibility not shared: %s", visibility)
|
||||
return nil, nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue