Only check invite auth events for local invites

This commit is contained in:
Kegan Dougal 2020-06-24 17:40:04 +01:00
parent 3d3979cfff
commit a45c76c491

View file

@ -137,19 +137,22 @@ func (r *RoomserverInternalAPI) processInviteEvent(
event := input.Event.Unwrap() event := input.Event.Unwrap()
// check that the user is allowed to do this // check that the user is allowed to do this. We can only do this check if it is
_, err = checkAuthEvents(ctx, r.DB, input.Event, input.Event.AuthEventIDs()) // a local invite as we have the auth events, else we have to take it on trust.
if err != nil { if loopback != nil {
log.WithError(err).WithField("event_id", event.EventID()).WithField("auth_event_ids", event.AuthEventIDs()).Error( _, err = checkAuthEvents(ctx, r.DB, input.Event, input.Event.AuthEventIDs())
"processInviteEvent.checkAuthEvents failed for event", if err != nil {
) log.WithError(err).WithField("event_id", event.EventID()).WithField("auth_event_ids", event.AuthEventIDs()).Error(
if _, ok := err.(*gomatrixserverlib.NotAllowed); ok { "processInviteEvent.checkAuthEvents failed for event",
return nil, &api.PerformError{ )
Msg: err.Error(), if _, ok := err.(*gomatrixserverlib.NotAllowed); ok {
Code: api.PerformErrorNotAllowed, return nil, &api.PerformError{
Msg: err.Error(),
Code: api.PerformErrorNotAllowed,
}
} }
return nil, err
} }
return nil, err
} }
if len(input.InviteRoomState) > 0 { if len(input.InviteRoomState) > 0 {