diff options
author | Erik Johnston <erik@matrix.org> | 2016-04-05 12:44:39 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-04-05 12:44:39 +0100 |
commit | b29f98377d1966bc348d83cf6ba38b434a1a794e (patch) | |
tree | 80984de66275e89ad1372fe0d4ac7faaaf5e0c74 /synapse/storage/roommember.py | |
parent | Merge pull request #690 from matrix-org/erikj/member (diff) | |
parent | Fix stuck invites (diff) | |
download | synapse-b29f98377d1966bc348d83cf6ba38b434a1a794e.tar.xz |
Merge pull request #691 from matrix-org/erikj/member
Fix stuck invites
Diffstat (limited to 'synapse/storage/roommember.py')
-rw-r--r-- | synapse/storage/roommember.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py index 36456a75fc..66e7a40e3c 100644 --- a/synapse/storage/roommember.py +++ b/synapse/storage/roommember.py @@ -102,6 +102,25 @@ class RoomMemberStore(SQLBaseStore): event.state_key, )) + @defer.inlineCallbacks + def locally_reject_invite(self, user_id, room_id): + sql = ( + "UPDATE local_invites SET stream_id = ?, locally_rejected = ? WHERE" + " room_id = ? AND invitee = ? AND locally_rejected is NULL" + " AND replaced_by is NULL" + ) + + def f(txn, stream_ordering): + txn.execute(sql, ( + stream_ordering, + True, + room_id, + user_id, + )) + + with self._stream_id_gen.get_next() as stream_ordering: + yield self.runInteraction("locally_reject_invite", f, stream_ordering) + def get_room_member(self, user_id, room_id): """Retrieve the current state of a room member. |