diff options
author | Erik Johnston <erik@matrix.org> | 2017-10-24 15:02:25 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-10-24 15:02:25 +0100 |
commit | f009df23ec711e943d958bb0a0e3185d42d7cc79 (patch) | |
tree | 30fa4558fe72f9429b0d533d12653dc786ad9692 /synapse/federation | |
parent | Merge branch 'release-v0.24.0' of github.com:matrix-org/synapse (diff) | |
parent | Bump version and changelog (diff) | |
download | synapse-f009df23ec711e943d958bb0a0e3185d42d7cc79.tar.xz |
Merge branch 'release-v0.24.1' of github.com:matrix-org/synapse v0.24.1
Diffstat (limited to 'synapse/federation')
-rw-r--r-- | synapse/federation/transport/client.py | 20 | ||||
-rw-r--r-- | synapse/federation/transport/server.py | 28 |
2 files changed, 34 insertions, 14 deletions
diff --git a/synapse/federation/transport/client.py b/synapse/federation/transport/client.py index 125d8f3598..d25ae1b282 100644 --- a/synapse/federation/transport/client.py +++ b/synapse/federation/transport/client.py @@ -486,6 +486,26 @@ class TransportLayerClient(object): ) @log_function + def update_group_profile(self, destination, group_id, requester_user_id, content): + """Update a remote group profile + + Args: + destination (str) + group_id (str) + requester_user_id (str) + content (dict): The new profile of the group + """ + path = PREFIX + "/groups/%s/profile" % (group_id,) + + return self.client.post_json( + destination=destination, + path=path, + args={"requester_user_id": requester_user_id}, + data=content, + ignore_backoff=True, + ) + + @log_function def get_group_summary(self, destination, group_id, requester_user_id): """Get a group summary """ diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py index f0778c65c5..8f3c14c303 100644 --- a/synapse/federation/transport/server.py +++ b/synapse/federation/transport/server.py @@ -112,7 +112,7 @@ class Authenticator(object): key = strip_quotes(param_dict["key"]) sig = strip_quotes(param_dict["sig"]) return (origin, key, sig) - except: + except Exception: raise AuthenticationError( 400, "Malformed Authorization header", Codes.UNAUTHORIZED ) @@ -177,7 +177,7 @@ class BaseFederationServlet(object): if self.REQUIRE_AUTH: logger.exception("authenticate_request failed") raise - except: + except Exception: logger.exception("authenticate_request failed") raise @@ -270,7 +270,7 @@ class FederationSendServlet(BaseFederationServlet): code, response = yield self.handler.on_incoming_transaction( transaction_data ) - except: + except Exception: logger.exception("on_incoming_transaction failed") raise @@ -610,7 +610,7 @@ class FederationVersionServlet(BaseFederationServlet): class FederationGroupsProfileServlet(BaseFederationServlet): - """Get the basic profile of a group on behalf of a user + """Get/set the basic profile of a group on behalf of a user """ PATH = "/groups/(?P<group_id>[^/]*)/profile$" @@ -626,30 +626,30 @@ class FederationGroupsProfileServlet(BaseFederationServlet): defer.returnValue((200, new_content)) - -class FederationGroupsSummaryServlet(BaseFederationServlet): - PATH = "/groups/(?P<group_id>[^/]*)/summary$" - @defer.inlineCallbacks - def on_GET(self, origin, content, query, group_id): + def on_POST(self, origin, content, query, group_id): requester_user_id = parse_string_from_args(query, "requester_user_id") if get_domain_from_id(requester_user_id) != origin: raise SynapseError(403, "requester_user_id doesn't match origin") - new_content = yield self.handler.get_group_summary( - group_id, requester_user_id + new_content = yield self.handler.update_group_profile( + group_id, requester_user_id, content ) defer.returnValue((200, new_content)) + +class FederationGroupsSummaryServlet(BaseFederationServlet): + PATH = "/groups/(?P<group_id>[^/]*)/summary$" + @defer.inlineCallbacks - def on_POST(self, origin, content, query, group_id): + def on_GET(self, origin, content, query, group_id): requester_user_id = parse_string_from_args(query, "requester_user_id") if get_domain_from_id(requester_user_id) != origin: raise SynapseError(403, "requester_user_id doesn't match origin") - new_content = yield self.handler.update_group_profile( - group_id, requester_user_id, content + new_content = yield self.handler.get_group_summary( + group_id, requester_user_id ) defer.returnValue((200, new_content)) |