diff options
author | Till <2353100+S7evinK@users.noreply.github.com> | 2022-07-20 12:39:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-20 12:39:06 +0200 |
commit | 9507966ebdbe0615e8d27be4b7a1d4440ada3e73 (patch) | |
tree | 371661b5a1d57c4f8a1a078dc4babf4fd12eead5 /roomserver | |
parent | 84a779788360101a2353679cc2baa695fba7f9f2 (diff) |
Fix issue with membership event_nid being 0 (#2580)
Diffstat (limited to 'roomserver')
-rw-r--r-- | roomserver/storage/shared/membership_updater.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/roomserver/storage/shared/membership_updater.go b/roomserver/storage/shared/membership_updater.go index ebfcef56..c79ca899 100644 --- a/roomserver/storage/shared/membership_updater.go +++ b/roomserver/storage/shared/membership_updater.go @@ -105,8 +105,15 @@ func (u *MembershipUpdater) SetToInvite(event *gomatrixserverlib.Event) (bool, e if err != nil { return fmt.Errorf("u.d.InvitesTable.InsertInviteEvent: %w", err) } + + // Look up the NID of the invite event + nIDs, err := u.d.eventNIDs(u.ctx, u.txn, []string{event.EventID()}, false) + if err != nil { + return fmt.Errorf("u.d.EventNIDs: %w", err) + } + if u.membership != tables.MembershipStateInvite { - if inserted, err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateInvite, 0, false); err != nil { + if inserted, err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateInvite, nIDs[event.EventID()], false); err != nil { return fmt.Errorf("u.d.MembershipTable.UpdateMembership: %w", err) } } |