mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-14 11:33:53 +01:00
Docs and indents
This commit is contained in:
parent
92ab45a330
commit
0c53d750e7
3 changed files with 31 additions and 14 deletions
|
@ -400,7 +400,10 @@ class RoomMemberHandler(BaseHandler):
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def get_inviter(self, user_id, room_id):
|
def get_inviter(self, user_id, room_id):
|
||||||
invite = yield self.store.get_inviter(user_id=user_id, room_id=room_id)
|
invite = yield self.store.get_invite_for_user_in_room(
|
||||||
|
user_id=user_id,
|
||||||
|
room_id=room_id,
|
||||||
|
)
|
||||||
if invite:
|
if invite:
|
||||||
defer.returnValue(UserID.from_string(invite.sender))
|
defer.returnValue(UserID.from_string(invite.sender))
|
||||||
|
|
||||||
|
|
|
@ -66,11 +66,15 @@ class RoomMemberStore(SQLBaseStore):
|
||||||
self.get_invited_rooms_for_user.invalidate, (event.state_key,)
|
self.get_invited_rooms_for_user.invalidate, (event.state_key,)
|
||||||
)
|
)
|
||||||
|
|
||||||
is_mine = self.hs.is_mine_id(event.state_key)
|
# We update the local_invites table only if the event is "current",
|
||||||
|
# i.e., its something that has just happened.
|
||||||
|
# The only current event that can also be an outlier is if its an
|
||||||
|
# invite that has come in across federation.
|
||||||
is_new_state = not backfilled and (
|
is_new_state = not backfilled and (
|
||||||
not event.internal_metadata.is_outlier()
|
not event.internal_metadata.is_outlier()
|
||||||
or event.internal_metadata.is_invite_from_remote()
|
or event.internal_metadata.is_invite_from_remote()
|
||||||
)
|
)
|
||||||
|
is_mine = self.hs.is_mine_id(event.state_key)
|
||||||
if is_new_state and is_mine:
|
if is_new_state and is_mine:
|
||||||
if event.membership == Membership.INVITE:
|
if event.membership == Membership.INVITE:
|
||||||
self._simple_insert_txn(
|
self._simple_insert_txn(
|
||||||
|
@ -163,7 +167,17 @@ class RoomMemberStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def get_inviter(self, user_id, room_id):
|
def get_invite_for_user_in_room(self, user_id, room_id):
|
||||||
|
"""Gets the invite for the given user and room
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id (str)
|
||||||
|
room_id (str)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Deferred: Resolves to either a RoomsForUser or None if no invite was
|
||||||
|
found.
|
||||||
|
"""
|
||||||
invites = yield self.get_invited_rooms_for_user(user_id)
|
invites = yield self.get_invited_rooms_for_user(user_id)
|
||||||
for invite in invites:
|
for invite in invites:
|
||||||
if invite.room_id == room_id:
|
if invite.room_id == room_id:
|
||||||
|
|
|
@ -26,17 +26,17 @@ CREATE TABLE local_invites(
|
||||||
|
|
||||||
-- Insert all invites for local users into new `invites` table
|
-- Insert all invites for local users into new `invites` table
|
||||||
INSERT INTO local_invites SELECT
|
INSERT INTO local_invites SELECT
|
||||||
stream_ordering as stream_id,
|
stream_ordering as stream_id,
|
||||||
sender as inviter,
|
sender as inviter,
|
||||||
state_key as invitee,
|
state_key as invitee,
|
||||||
event_id,
|
event_id,
|
||||||
room_id,
|
room_id,
|
||||||
NULL as locally_rejected,
|
NULL as locally_rejected,
|
||||||
NULL as replaced_by
|
NULL as replaced_by
|
||||||
FROM events
|
FROM events
|
||||||
NATURAL JOIN current_state_events
|
NATURAL JOIN current_state_events
|
||||||
NATURAL JOIN room_memberships
|
NATURAL JOIN room_memberships
|
||||||
WHERE membership = 'invite' AND state_key IN (SELECT name FROM users);
|
WHERE membership = 'invite' AND state_key IN (SELECT name FROM users);
|
||||||
|
|
||||||
CREATE INDEX local_invites_id ON local_invites(stream_id);
|
CREATE INDEX local_invites_id ON local_invites(stream_id);
|
||||||
CREATE INDEX local_invites_for_user_idx ON local_invites(invitee, locally_rejected, replaced_by, room_id);
|
CREATE INDEX local_invites_for_user_idx ON local_invites(invitee, locally_rejected, replaced_by, room_id);
|
||||||
|
|
Loading…
Reference in a new issue