mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 14:06:02 -04:00
Merge pull request #2378 from matrix-org/erikj/group_sync_support
Add groups to sync stream
This commit is contained in:
commit
96917d5552
12 changed files with 283 additions and 12 deletions
|
@ -63,6 +63,7 @@ class GroupsLocalHandler(object):
|
|||
self.is_mine_id = hs.is_mine_id
|
||||
self.signing_key = hs.config.signing_key[0]
|
||||
self.server_name = hs.hostname
|
||||
self.notifier = hs.get_notifier()
|
||||
self.attestations = hs.get_groups_attestation_signing()
|
||||
|
||||
# Ensure attestations get renewed
|
||||
|
@ -212,13 +213,16 @@ class GroupsLocalHandler(object):
|
|||
user_id=user_id,
|
||||
)
|
||||
|
||||
yield self.store.register_user_group_membership(
|
||||
token = yield self.store.register_user_group_membership(
|
||||
group_id, user_id,
|
||||
membership="join",
|
||||
is_admin=False,
|
||||
local_attestation=local_attestation,
|
||||
remote_attestation=remote_attestation,
|
||||
)
|
||||
self.notifier.on_new_event(
|
||||
"groups_key", token, users=[user_id],
|
||||
)
|
||||
|
||||
defer.returnValue({})
|
||||
|
||||
|
@ -258,11 +262,14 @@ class GroupsLocalHandler(object):
|
|||
if "avatar_url" in content["profile"]:
|
||||
local_profile["avatar_url"] = content["profile"]["avatar_url"]
|
||||
|
||||
yield self.store.register_user_group_membership(
|
||||
token = yield self.store.register_user_group_membership(
|
||||
group_id, user_id,
|
||||
membership="invite",
|
||||
content={"profile": local_profile, "inviter": content["inviter"]},
|
||||
)
|
||||
self.notifier.on_new_event(
|
||||
"groups_key", token, users=[user_id],
|
||||
)
|
||||
|
||||
defer.returnValue({"state": "invite"})
|
||||
|
||||
|
@ -271,10 +278,13 @@ class GroupsLocalHandler(object):
|
|||
"""Remove a user from a group
|
||||
"""
|
||||
if user_id == requester_user_id:
|
||||
yield self.store.register_user_group_membership(
|
||||
token = yield self.store.register_user_group_membership(
|
||||
group_id, user_id,
|
||||
membership="leave",
|
||||
)
|
||||
self.notifier.on_new_event(
|
||||
"groups_key", token, users=[user_id],
|
||||
)
|
||||
|
||||
# TODO: Should probably remember that we tried to leave so that we can
|
||||
# retry if the group server is currently down.
|
||||
|
@ -297,10 +307,13 @@ class GroupsLocalHandler(object):
|
|||
"""One of our users was removed/kicked from a group
|
||||
"""
|
||||
# TODO: Check if user in group
|
||||
yield self.store.register_user_group_membership(
|
||||
token = yield self.store.register_user_group_membership(
|
||||
group_id, user_id,
|
||||
membership="leave",
|
||||
)
|
||||
self.notifier.on_new_event(
|
||||
"groups_key", token, users=[user_id],
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_joined_groups(self, user_id):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue